← 15. Post Production

Chunks — 15. Post Production

The FRD markdown is the source of truth; these chunks are the derived retrieval index used to give the test-case generator only the relevant slices. Rebuilt automatically when the FRD is saved.

211 chunks · ~51,013 tokens

#1
(intro)
~4 tok
Post Production
#2
(intro)
~1 tok
#
#3
(intro)
~1 tok
#
#4
(intro)
~1 tok
#
#5
(intro)
~1 tok
#
#6
(intro)
~1 tok
#
#7
**Post Production**
~47 tok
# **Post Production**

**Functional Requirement Document**

**BA & Ideation: Deval Chauhan**

**Reviewed By: Keval Gajjar**

**Updated Date:23 December 2025  
Status:**

**Version: 1.0**
#8
**Post Production Module - Executive Summary**
~12 tok
# **Post Production Module - Executive Summary**
#9
**Post Production Module - Executive Summary** > **Comprehensive Coverage Across 5 FRDs**
~11 tok
## **Comprehensive Coverage Across 5 FRDs**
#10
**Post Production Module - Executive Summary** > **FRD 1: Post Production Initiation & Manual Job Creation**
~16 tok
## **FRD 1: Post Production Initiation & Manual Job Creation**
#11
**Post Production Module - Executive Summary** > **FRD 1: Post Production Initiation & Manual Job Creation** > Core Features:
~203 tok
### Core Features:

*   **Subscription Gating**: Module access requires active post production subscription tier
*   **Automatic Population**: Daily CRON job creates deliverables from packages after event completion
*   **Manual Creation**: Add deliverables not in original package with validation rules
*   **Due Date Logic**: Inherits from package or manual selection (must be after event date)
*   **Priority Levels**: Standard (gray), Priority (yellow), Urgent (red) visual indicators
*   **Editor Limits**: Enforced based on subscription tier with upgrade prompts
*   **Media Storage**: Free text field for tracking hard drive locations or cloud URLs
*   **Empty States**: Role-specific messages for agency owners vs editors
*   **Status Default**: All deliverables start in "Post-event Processing" status
#12
**Post Production Module - Executive Summary** > **FRD 2: Agency Side Post Production Access**
~12 tok
## **FRD 2: Agency Side Post Production Access**
#13
**Post Production Module - Executive Summary** > **FRD 2: Agency Side Post Production Access** > Management Features:
~224 tok
### Management Features:

*   **8 Status Columns**: Fixed workflow from Post-event Processing to Delivered
*   **Column Customization**: Resize (150-400px) and reorder with per-user persistence
*   **Multi-Filter System**: AND/OR logic combining Status, Brand, Priority, Editor filters
*   **Search Capability**: Real-time search across projects, clients, deliverable types (300ms debounce)
*   **Chat System**: Rich text, @ mentions, file attachments (10MB limit), email notifications
*   **Status Management**: Unrestricted status changes with audit trail logging
*   **Editor Payment**: Checkbox enabled only after editor assignment, trackable at any status
*   **Internal Review**: URL field for quality checking before client delivery
*   **Client Delivery**: Modal with link validation, custom messaging, email notification
*   **Archive Function**: Move completed projects to archived view
#14
**Post Production Module - Executive Summary** > **FRD 3: Post Production Module Impact on Other Modules**
~15 tok
## **FRD 3: Post Production Module Impact on Other Modules**
#15
**Post Production Module - Executive Summary** > **FRD 3: Post Production Module Impact on Other Modules** > Integration Points:
~249 tok
### Integration Points:

*   **Project Page Widget**: Shows deliverables with + button for manual additions
*   **Event Date Intelligence**: Pre-event additions queue, post-event additions activate immediately
*   **Package Synchronization**: Automatic creation from deliverable-marked line items
*   **Invoice Handling**: Manual deliverables can link to additional invoices (no auto-sync)
*   **Client Portal Mapping**:
    *   Post-event Processing → "Pending"
    *   Processing Complete → "Pending"
    *   Assigned to Editor → "In Progress"
    *   In Progress → "In Progress"
    *   Edit Complete → "Edit Completed"
    *   Ready for Client → "Edit Completed"
    *   Delivered → "Delivered"
*   **Revision Requests**: Client portal button changes internal status to "Revision Needed"
*   **Real-Time Sync**: Cross-module updates reflect immediately
*   **Deliverable Links**: Permanent client access through portal
*   **Progress Indicators**: Visual percentage of completed deliverables
#16
**Post Production Module - Executive Summary** > **FRD 4: Supervising Editor Post Production Access**
~14 tok
## **FRD 4: Supervising Editor Post Production Access**
#17
**Post Production Module - Executive Summary** > **FRD 4: Supervising Editor Post Production Access** > Supervision Capabilities:
~208 tok
### Supervision Capabilities:

*   **Global Visibility**: See all projects regardless of assignment
*   **Team Management**: Assign/reassign junior editors with workload indicators
*   **Self-Assignment**: Can assign projects to themselves
*   **Workload Display**: Shows active project count per editor (e.g., "John (3 active)")
*   **Quality Review**: Validate edits before marking "Ready for Client"
*   **Revision Workflow**: Send back with feedback via chat
*   **Load Balancing**: Reassign projects from overloaded editors
*   **Bulk Operations**: Assign multiple projects simultaneously
*   **Full Chat Access**: Participate in all project conversations
*   **Archive Rights**: Can archive completed projects
*   **Deliver to Client**: TBD - pending client confirmation
*   **Export Reports**: Download team performance data
#18
**Post Production Module - Executive Summary** > **FRD 5: Jr. Editor Post Production Access**
~12 tok
## **FRD 5: Jr. Editor Post Production Access**
#19
**Post Production Module - Executive Summary** > **FRD 5: Jr. Editor Post Production Access** > Restricted Access:
~226 tok
### Restricted Access:

*   **Limited View**: Only see explicitly assigned projects
*   **Status Updates**: Can change status on own projects only:
    *   Assigned to Editor → In Progress
    *   In Progress → Edit Complete
    *   Revision Needed → In Progress/Edit Complete
*   **Cannot Access**: Unassigned projects, financial data, client details
*   **Chat Participation**: Only for assigned project threads
*   **Review Links**: Required before marking edit complete
*   **No Payment View**: Editor Paid checkbox hidden
*   **Priority Indicators**: See urgency levels for workload planning
*   **Email Notifications**: Receive alerts for new assignments
*   **Revision Handling**: Process feedback and resubmit
*   **Empty State**: "No projects assigned to you yet"
*   **No Self-Assignment**: Must wait for supervisor/agency assignment
*   **Column Preferences**: Personal layout saved per user
#20
**Post Production Module - Executive Summary** > **Common Technical Specifications**
~10 tok
## **Common Technical Specifications**
#21
**Post Production Module - Executive Summary** > **Common Technical Specifications** > System-Wide Features:
~189 tok
### System-Wide Features:

*   **Role-Based Access**: Agency Owner > Admin > Project Manager > Supervisor Editor > Junior Editor
*   **Database Transactions**: Atomic updates across modules
*   **Audit Logging**: All actions tracked with user\_id and timestamp
*   **Email Service**: HTML notifications for assignments, deliveries, mentions
*   **WebSocket Updates**: Real-time portal synchronization
*   **Validation Rules**: Due date > event date, URL format checking, character limits
*   **Multi-Tenant Limits**: One role per email in Phase 1
*   **Subscription Enforcement**: Real-time validation on every access
*   **Error Handling**: Inline validation messages, network retry logic
*   **Performance**: 60-second auto-refresh, 300ms search debounce
#22
**Post Production Module - Executive Summary** > **Common Technical Specifications** > Phase 2 Enhancements (Noted for Future):
~90 tok
### Phase 2 Enhancements (Noted for Future):

*   **Uncut Gems Integration**: Automated video editing workflows
*   **Custom Status Stages**: User-defined workflow steps
*   **Bulk Operations**: Mass status updates and assignments
*   **API Integration**: Third-party editing software connections
*   **Advanced Analytics**: Performance dashboards and metrics
#23
**Post Production Module - Executive Summary** > **Delivery Package Contents**
~8 tok
## **Delivery Package Contents**
#24
**Post Production Module - Executive Summary** > **Delivery Package Contents** > Documentation:
~49 tok
### Documentation:

*   5 Comprehensive FRD Documents (12 sections each)
*   5 Individual Test Case Excel Files (10 test cases per FRD)
*   Total: 50 detailed test scenarios covering all user flows
#25
**Post Production Module - Executive Summary** > **Delivery Package Contents** > Key Decisions:
~110 tok
### Key Decisions:

*   **Editor Payment**: Checkbox available only after assignment ✅
*   **Supervisor Delivery**: Marked as TBD pending confirmation ⚠️
*   **Archive Access**: Available from any status with unarchive option ✅
*   **Multi-Role Restriction**: Separate emails required for different roles ✅

**Document Status**: Ready for Development **Version**: 1.0 **Date**: December 22, 2024

1\. Post Production Initiation & Manual Job
#26
**Functional Requirements Document (FRD)**
~11 tok
# **Functional Requirements Document (FRD)**
#27
**FRD 1: Post Production Initiation & Manual Job Creation**
~54 tok
# **FRD 1: Post Production Initiation & Manual Job Creation**

**Module Name:** Post Production — Initiation & Manual Job Creation **Version:** 1.3 **Created Date:** February 12, 2026 **Last Updated:** March 26, 2026
#28
**FRD 1: Post Production Initiation & Manual Job Creation** > **1\. Module Overview**
~287 tok
## **1\. Module Overview**

**Module Name:** Post Production — Initiation & Manual Job Creation

**Purpose:** This sub-module governs how deliverables enter the Post Production board. It covers two primary pathways: the automatic population of deliverables from completed project events based on package line items, and the manual creation of new deliverable jobs directly from the Post Production board. It also enforces subscription-based access gating to ensure only authorized agencies can use the Post Production module.

**Business Goals:**

*   Automate the flow of contracted deliverables into the Post Production workflow immediately after event completion, eliminating manual tracking and reducing missed commitments.
*   Provide flexibility for agencies to add additional deliverables at any point after the event, supporting upselling, scope changes, and last-minute client requests.
*   Enforce subscription tier validation to protect the revenue model and ensure only paying agencies access Post Production functionality.
*   Maintain a clear audit trail distinguishing automatically populated deliverables from manually created ones.
#29
**FRD 1: Post Production Initiation & Manual Job Creation** > **2\. User Roles & Permissions**
~298 tok
## **2\. User Roles & Permissions**

**Role**

**Access Module**

**View Board**

**Create Manual Jobs**

**Edit Deliverables**

**Assign Editors**

Agency Owner

✓

✓

✓

✓

✓

Admin

✓

✓

✓

✓

✓

Project Manager

✓

✓

✓

✓

✓

Supervisor Editor

✓

✓

✓

Limited

✓

Junior Editor

✓

Assigned Only

✗

Status & Internal Review Link Only

✗

Contractor

✗

✗

✗

✗

✗

Client

✗ (Client Portal only)

✗

✗

✗

✗

**Contractor Exclusion:** Contractors have no access to the Post Production module. Their involvement ends at raw media submission. Contractor-submitted questionnaires are viewable within the Post Production board by agency users and editors.

**Subscription Requirement:** The Post Production module is gated by subscription tier. Users whose agency does not have the required subscription will be shown an upgrade prompt instead of the module content.

**Role Restriction:** In Phase 1, a single email address can only hold one role within one agency. Separate email addresses are required for users who need to operate in multiple roles or across multiple agencies. Contractors (freelancers) are exempt from this restriction and can be associated with multiple agencies.
#30
**FRD 1: Post Production Initiation & Manual Job Creation** > **3\. User Flow**
~747 tok
## **3\. User Flow**

3.1 The user clicks on "Post Production" in the left sidebar navigation menu.

3.2 The system checks the agency's subscription tier to determine whether the Post Production module is included in the current plan.

3.3 If the subscription does not include Post Production, the system displays an upgrade prompt overlay with a message explaining that this feature requires a higher-tier subscription and provides an "Upgrade" button that redirects to the subscription management page.

3.4 If the subscription includes Post Production, the system loads the Post Production board and displays all deliverables grouped by their current status stages.

3.5 If no deliverables exist on the board, the system displays an empty state message: "No deliverables pending. Deliverables will appear after event completion."

3.6 When an event date passes, the system automatically populates all line items marked as "Deliverable" in the associated project's package onto the Post Production board under the "Post-event Processing" stage. This auto-population is triggered at 12:00 AM (agency timezone) on the day after the event date.

3.7 Each automatically populated deliverable inherits the following data from the project and package: Project Name, Event Type, Event Date, Service Area, Brand, Project Manager, Deliverable Type, and Due Date (calculated as event date plus the number of days or months configured during package setup). If any inherited field is missing (e.g., no Service Area, no PM, no Event Type), the deliverable is still created and displays "—" in gray for that field. Users can manually populate missing fields after creation.

3.8 The system sets the default status of all auto-populated deliverables to "Post-event Processing" and the default priority to "Standard."

3.9 If the user wants to add a deliverable manually, the user clicks the "+ Add Deliverable" button located at the top of the Post Production board (next to the page title).

3.10 The system opens the "Add deliverable" popup dialog with an informational banner at the top and three required fields: Select Project (dropdown), Select Event (dropdown), and Deliverable Type (dropdown).

3.10a The info banner displays: "If the associated event has already passed, this deliverable will appear on the Post Production board immediately. If it has not yet passed, it will appear following the event." This banner is always visible and cannot be dismissed.

3.11 The user selects a project from the "Select Project" dropdown, which displays all projects within the agency sorted alphabetically (A-Z), including projects in "Completed" status.

3.12 Upon selecting a project, the system populates the "Select Event" dropdown with all events associated with the selected project.

3.13 If the selected project has only one event, the system auto-selects that event in the dropdown.

3.14 If the selected project has multiple events, the user selects the appropriate event from the dropdown.
#31
**FRD 1: Post Production Initiation & Manual Job Creation** > **3\. User Flow**
~429 tok
3.15 The user selects a deliverable type from the "Deliverable type" dropdown, which displays all line items that have been marked as "Deliverable" and saved as presets during package creation, as well as all ala carte items created within the system.

3.16 If the desired deliverable type does not exist in the dropdown, the user selects "Custom Deliverable (Manual Input)" from the dropdown.

3.17 The system displays an additional text field labeled "Custom Deliverable Name" below the dropdown.

3.18 The user types the name of the custom deliverable into the text field.

3.19 The user clicks the "Create Deliverable" button to submit the form.

3.20 If any required field is empty, the system displays an inline error message next to each empty field indicating that the field is required, and the deliverable is not created. The popup remains open with all entered data preserved. The user can correct the highlighted fields and resubmit.

3.21 If all required fields are populated, the system validates and creates the new deliverable on the Post Production board under the "Post-event Processing" stage with default status "Post-event Processing" and default priority "Standard."

3.22 If the event date has already passed, the system immediately displays the new deliverable on the Post Production board.

3.23 If the event date has not yet passed, the system stores the deliverable and displays it on the Post Production board only after the event date passes. However, the deliverable is visible in the project's deliverables section on the project details page immediately.

3.24 The user clicks "Cancel" or the close (×) icon on the popup to discard the creation and return to the board without changes.
#32
**FRD 1: Post Production Initiation & Manual Job Creation** > **4\. Functional Logic**
~7 tok
## **4\. Functional Logic**
#33
**FRD 1: Post Production Initiation & Manual Job Creation** > **4\. Functional Logic** > 4.1 Subscription Gating
~238 tok
### 4.1 Subscription Gating

*   The system validates the agency's subscription tier every time any user navigates to the Post Production module.
*   If the agency's subscription does not include Post Production access, the system blocks entry to the module and displays an upgrade prompt overlay on top of the module page.
*   The upgrade prompt includes a clear message explaining the subscription requirement and an "Upgrade" button that redirects the user to the subscription management page.
*   The Post Production menu item remains visible in the sidebar navigation for all users regardless of subscription status, ensuring discoverability of the feature.
*   Subscription validation occurs on page load and module navigation only. It is not triggered by individual actions such as scrolling, viewing cards, clicking "+ Add Deliverable," or submitting the "Create Deliverable" form. This prevents unnecessary API calls during normal board usage.
#34
**FRD 1: Post Production Initiation & Manual Job Creation** > **4\. Functional Logic** > 4.2 Status Stage Configuration
~161 tok
### 4.2 Status Stage Configuration

*   In Phase 1, the Post Production board uses eight predefined status stages that cannot be modified, added to, or deleted by users: Post-event Processing, Processing Complete, Assigned to Editor, In Progress, Edit Complete, Revision Needed, Ready for Client, and Delivered.
*   In Phase 2 (v2), users will be given the ability to add their own custom stages or modify the existing predefined stages. If users prefer the predefined stages, they may continue using them without changes.
*   This future enhancement note is documented for developer awareness but is out of scope for the current implementation.
#35
**FRD 1: Post Production Initiation & Manual Job Creation** > **4\. Functional Logic** > 4.3 Automatic Deliverable Population
~696 tok
### 4.3 Automatic Deliverable Population

*   The system monitors all projects for events that have passed their event date.
*   **Trigger Mechanism:** Auto-population is triggered at 12:00 AM on the day after the event date, calculated in the agency's configured timezone. If no agency timezone is set, the system defaults to UTC. For example, if an event occurs on March 26 and the agency timezone is IST, deliverables are created at 12:00 AM IST on March 27.
*   **Retry Behavior:** If auto-population fails for any event (e.g., due to a system error), the system logs the failure, skips that event, and retries on the next scheduled run (24 hours later). Failed events do not block the successful auto-population of deliverables for other events.
*   On the day after the event date, the system automatically creates deliverable records on the Post Production board for every line item in the project's package that has been marked as a "Deliverable."
*   Each auto-populated deliverable record is created with the following default values: status is set to "Post-event Processing," priority is set to "Standard," editor is unassigned, media storage location is empty, internal review link is empty, and editor paid is unchecked.
*   The due date for each auto-populated deliverable is calculated based on the configuration set during package creation, which specifies the number of days or months after the event date that the deliverable is due.
*   If no due date was configured in the package for a specific deliverable, the due date field remains empty and displays a red "+ Due Date" link prompting the user to add one manually.
*   The following data fields are automatically fetched from the project: Project Name (displayed as a clickable link to the project/event page), Event Type (displayed as a colored label beneath the project name), Event Date, Service Area, Brand, and Project Manager.
*   Auto-populated deliverables have the following field editability rules:
    *   **LOCKED fields (read-only on the board):** Project Name, Deliverable Type, Event Date, Service Area, Brand.
    *   **EDITABLE fields:** Due Date, Status, Priority, Editor, Media Storage Location, Editor Paid, Internal Review Link, Project Manager.
*   If the scope changes, a new manual deliverable must be created instead of modifying a locked field on an existing deliverable.
*   If any inherited field is missing from the source project (e.g., no Service Area configured), the deliverable is still created and displays "—" in gray for that field.
*   If a project has multiple events (e.g., Rehearsal Dinner, Wedding, Engagement Photoshoot), the system creates separate deliverable records for each event's package line items, and each deliverable is associated with its respective event.
#36
**FRD 1: Post Production Initiation & Manual Job Creation** > **4\. Functional Logic** > 4.4 Manual Job Creation
~777 tok
### 4.4 Manual Job Creation

*   The "+ Add Deliverable" button is located at the top of the Post Production board (next to the page title) and is visible to Agency Owner, Admin, Project Manager, and Supervisor Editor roles.
*   Junior Editors do not have access to the "+ Add Deliverable" button and cannot create deliverables.
*   Clicking the "+ Add Deliverable" button opens the "Add deliverable" popup dialog.
*   The popup displays an informational banner at the top with the message: "If the associated event has already passed, this deliverable will appear on the Post Production board immediately. If it has not yet passed, it will appear following the event." This banner is always visible and cannot be dismissed.
*   The popup contains three fields: "Select Project" (required dropdown), "Select Event" (required dropdown), and "Deliverable type" (required dropdown).
*   The "Select Project" dropdown lists all projects within the agency (including Completed projects), sorted alphabetically by project name (A-Z).
*   When a project is selected, the "Select Event" dropdown dynamically populates with all events associated with that project. Each event is displayed by its Event Type only (e.g., "Wedding," "Rehearsal Dinner," "Engagement Photoshoot").
*   If the selected project contains only one event, that event is automatically selected in the dropdown.
*   The "Deliverable type" dropdown displays all line items that were marked as "Deliverable" and saved as presets during package and ala carte item creation across the system.
*   The dropdown also includes a "Custom Deliverable (Manual Input)" option at the end of the list for creating one-off deliverables.
*   When "Custom Deliverable (Manual Input)" is selected, the system displays an additional text input field labeled "Custom Deliverable Name" beneath the dropdown.
*   Custom deliverables created through this field are for one-time use only and are not saved as presets in the system dropdown for future use.
*   The "Create Deliverable" button is always enabled regardless of field completion state.
*   When the user clicks "Create Deliverable," the system validates all required fields. If any required field is empty, the system displays an inline error message next to each empty field and does not create the deliverable.
*   Upon successful validation and creation, the system adds the deliverable to the Post Production board under the "Post-event Processing" stage with default status "Post-event Processing" and default priority "Standard."
*   If the event associated with the new deliverable has already passed its event date, the deliverable appears immediately on the Post Production board.
*   If the event has not yet passed, the system stores the deliverable and makes it visible on the Post Production board only after the event date passes. However, the deliverable is visible in the project's deliverables section on the project details page immediately.
*   The "Cancel" button and the close (×) icon both close the popup without saving any data.
*   All fields are reset when the popup is reopened.
#37
**FRD 1: Post Production Initiation & Manual Job Creation** > **4\. Functional Logic** > 4.5 Deliverable Type Dropdown Logic
~274 tok
### 4.5 Deliverable Type Dropdown Logic

*   The "Deliverable type" dropdown in the manual job creation popup aggregates items from two sources: package line items marked as "Deliverable" that were saved as presets, and ala carte items created in the system.
*   Only items that have been explicitly marked as "Deliverable" during package or ala carte item creation appear in this dropdown.
*   The dropdown provides a search/filter capability, allowing users to type and narrow down the list of available deliverable types.
*   When "Custom Deliverable (Manual Input)" is selected, the additional text field accepts free-form text entry for the deliverable name, with a maximum of 100 characters. Leading and trailing whitespace is trimmed. Whitespace-only input is rejected with an error: "Please enter a valid deliverable name."
*   Custom deliverables are associated only with the specific deliverable record being created and do not persist in the dropdown list for future use.
*   If the same custom deliverable name is needed again in the future, the user must type it manually each time.
#38
**FRD 1: Post Production Initiation & Manual Job Creation** > **4\. Functional Logic** > 4.6 Deliverable Timing Rules
~250 tok
### 4.6 Deliverable Timing Rules

*   Deliverables tied to package line items are created internally when the package is configured but only appear on the Post Production board after the event date passes.
*   Deliverables added manually before the event date are stored in the system and appear on the Post Production board after the event date passes. However, they are visible on the project's event page deliverables widget immediately.
*   Deliverables added manually after the event date appear immediately on the Post Production board.
*   The system uses the specific event date (not the overall project date range) to determine when deliverables should appear, since a project may contain multiple events with different dates.
*   Deliverables can be added to any project regardless of its current pipeline status, including projects in "Completed" status. This allows agencies to handle late additions, scope changes, or follow-up deliverables even after a project has been marked complete.
#39
**FRD 1: Post Production Initiation & Manual Job Creation** > **4\. Functional Logic** > 4.7 Empty State Behavior
~122 tok
### 4.7 Empty State Behavior

*   When the Post Production board has no deliverables at all, the system displays a centered message: "No deliverables pending. Deliverables will appear after event completion."
*   When a specific status stage section has no deliverables, the stage header still appears with a count of (0) and the section can be collapsed or expanded.
*   The empty state message is displayed until at least one deliverable is populated either automatically or manually.
#40
**FRD 1: Post Production Initiation & Manual Job Creation** > **4\. Functional Logic** > 4.8 Data Integrity Rules
~540 tok
### 4.8 Data Integrity Rules

*   The system maintains metadata for each deliverable record including creation method (automatic or manual), created-by user, creation timestamp, and the associated project and event identifiers.
*   **Locked fields** on auto-populated deliverables: Project Name, Deliverable Type, Event Date, Service Area, Brand. These cannot be edited on the board. To adjust scope, a new deliverable must be manually created.
*   **Editable fields** on auto-populated deliverables: Due Date, Status, Priority, Editor, Media Storage Location, Editor Paid, Internal Review Link, Project Manager.
*   Deliverables added via separate invoices after the initial contract has been signed do not automatically sync to the Post Production board or the event page deliverables widget. They must be added manually through the "+ Add Deliverable" flow.
*   **Project Deletion:** If a project is deleted after its deliverables have been auto-populated, all associated deliverables are automatically moved to the Archived section. Deliverable data (editor, due date, priority, chat history) is preserved.
*   **Package Line Item Deletion:** If a package line item is deleted after its deliverable has been auto-populated, the associated deliverable is automatically moved to the Archived section with its original name and details preserved.
*   **Event Date Change:** If an event date is changed after deliverables have been auto-populated, the system automatically recalculates all associated deliverable due dates based on the original package configuration offset (days/months after event date).
*   **Subscription Downgrade:** If an agency's subscription is downgraded, all previously created deliverable data is preserved in the database. When the agency re-subscribes, all data becomes immediately accessible with zero data loss. The board displays all deliverables with their last saved status, assignments, and due dates.
*   **Subscription Downgrade Mid-Popup:** If a subscription is downgraded while the "Add deliverable" popup is open, clicking "Create Deliverable" triggers a subscription error. The popup closes and any entered data is lost.
#41
**FRD 1: Post Production Initiation & Manual Job Creation** > **5\. Field Details & Validations**
~10 tok
## **5\. Field Details & Validations**
#42
**FRD 1: Post Production Initiation & Manual Job Creation** > **5\. Field Details & Validations** > 5.1 Add Deliverable Popup Fields
~231 tok
### 5.1 Add Deliverable Popup Fields

**Field Name**

**Field Type**

**Required**

**Validation Rules**

Select Project

Dropdown

Yes

Lists all projects in the agency (including Completed), sorted alphabetically A-Z. Error shown on submit if empty.

Select Event

Dropdown

Yes

Populated dynamically based on selected project. Displays Event Type only (e.g., "Wedding"). Auto-selects if only one event exists. Error shown on submit if empty.

Deliverable Type

Dropdown

Yes

Displays preset deliverable types and ala carte items. Includes "Custom Deliverable (Manual Input)" option. Error shown on submit if empty.

Custom Deliverable Name

Text Input

Yes (when Custom selected)

Visible only when "Custom Deliverable (Manual Input)" is selected. Max 100 characters. Free-form text (alphanumeric, spaces, hyphens, underscores, parentheses). Trim leading/trailing whitespace. Error shown on submit if empty when visible.
#43
**FRD 1: Post Production Initiation & Manual Job Creation** > **5\. Field Details & Validations** > 5.2 Auto-Populated Deliverable Fields
~285 tok
### 5.2 Auto-Populated Deliverable Fields

**Field Name**

**Field Type**

**Source**

**Editable**

Project Name

Text (clickable link)

Project Management module

No

Event Type

Label (color-coded)

Project Management module

No

Event Date

Date

Project Management module

No

Due Date

Date

Package configuration (days/months after event)

Yes (by agency users)

Service Area

Text

Project Management module

No

Brand

Icon/Label

Project Management module

No

Project Manager

Avatar + Initials

Project Management module

Yes

Deliverable Type

Dropdown

Package line item name

No (for auto-populated)

Status

Dropdown

System default

Yes

Priority

Dropdown (Standard / High / Urgent)

System default: Standard

Yes

Editor

Dropdown

Unassigned by default

Yes

Media Storage Location

Text/Tag

Empty by default

Yes (max 200 characters)

Editor Paid

Checkbox + Edit icon

Unchecked by default

Yes (agency users only, after editor assignment)

Internal Review Link

Text/URL

Empty by default

Yes

Chat

Icon with badge

System-generated

N/A

Questionnaire

Button ("View")

Contractor and client submissions

Read-only
#44
**FRD 1: Post Production Initiation & Manual Job Creation** > **6\. Success Message Handling**
~188 tok
## **6\. Success Message Handling**

**Action**

**Success Message**

**Post-Success Behavior**

Manual deliverable created successfully

"Deliverable created successfully."

Popup closes. New deliverable appears in "Post-event Processing" stage on the board (immediately if event date has passed, or stored for post-event display). Board refreshes to show updated count.

Auto-populated deliverables appear after event

No explicit user-facing message (background process)

Deliverables silently appear on the board under "Post-event Processing" stage on the day after the event date. Stage count updates accordingly.

Subscription upgrade initiated

"Redirecting to subscription management..."

User is redirected to the subscription management page.
#45
**FRD 1: Post Production Initiation & Manual Job Creation** > **7\. Error Message Handling**
~577 tok
## **7\. Error Message Handling**

**Error Scenario**

**Error Message**

**Trigger Condition**

**Required Action**

No project selected

"Please select a project to continue."

User clicks "Create Deliverable" without selecting a project.

User must select a project from the dropdown.

No event selected

"Please select an event to continue."

User clicks "Create Deliverable" without selecting an event.

User must select an event from the dropdown.

No deliverable type selected

"Please select a deliverable type."

User clicks "Create Deliverable" without selecting a deliverable type.

User must select or enter a deliverable type.

Custom deliverable name empty

"Please enter a name for the custom deliverable."

User selects "Custom Deliverable (Manual Input)" but leaves the name field blank and clicks "Create Deliverable."

User must enter a deliverable name in the text field.

Multiple fields empty

Inline error shown on each empty required field simultaneously

User clicks "Create Deliverable" with multiple required fields empty.

User must fill in all highlighted required fields.

Custom deliverable name exceeds 100 characters

"Deliverable name cannot exceed 100 characters."

User enters a custom name longer than 100 characters.

User must shorten the name to 100 characters or fewer.

Custom deliverable name is whitespace-only

"Please enter a valid deliverable name."

User enters only spaces in the custom deliverable name field.

User must enter a valid alphanumeric name.

Subscription not active

"Post Production requires \[Tier Name\] subscription. Please upgrade to access this feature."

User navigates to Post Production without the required subscription tier.

User clicks "Upgrade" to navigate to subscription management.

Network/connectivity failure during creation

"Unable to create deliverable. Please check your connection and try again."

Network error occurs during the save operation.

User retries the action after connectivity is restored.

Subscription downgraded while popup is open

"Post Production requires \[Tier Name\] subscription. Please upgrade to access this feature."

Agency subscription is downgraded while the Add Deliverable popup is open, and user clicks "Create Deliverable."

Popup closes. Entered data is lost. User sees upgrade prompt.
#46
**FRD 1: Post Production Initiation & Manual Job Creation** > **8\. Edge Cases**
~784 tok
## **8\. Edge Cases**

**Edge Case**

**Expected System Behavior**

Project has no events associated

Not applicable — at least one event is mandatory per project. The "Select Event" dropdown will always have at least one option.

Project has no package line items marked as deliverable

The "Deliverable type" dropdown shows only the "Custom Deliverable (Manual Input)" option and any ala carte items.

Multiple events on the same date

Each event's deliverables are created as separate records, each linked to its respective event. All appear on the board simultaneously after the event date.

Event date is today

Deliverables for this event appear on the board starting tomorrow (at 12:00 AM agency timezone on the day after the event date).

User creates a manual deliverable for a future event

The deliverable is stored in the system but does not appear on the Post Production board until the event date passes. It is visible on the project details page immediately.

User creates a duplicate deliverable (same type for same event)

The system allows it. Multiple deliverables of the same type for the same event are valid (e.g., two separate "100 photos in frame" deliverables).

Subscription is downgraded while user is on the module

On the next page load or module navigation, the system re-validates and shows the upgrade prompt. Previously created deliverable data is preserved and becomes accessible again with zero data loss if the agency re-subscribes.

Subscription is downgraded while Add Deliverable popup is open

On "Create Deliverable" click, the system shows a subscription error message, the popup closes, and any entered data is lost. User is shown the upgrade prompt.

Package is modified after deliverables are auto-populated

Changes to the package do not retroactively update already-populated deliverables. New line items must be added manually.

User navigates away during popup without saving

All entered data in the popup is discarded. No partial records are saved.

Agency has no projects at all

The "Select Project" dropdown is empty. A message within the dropdown indicates "No projects available."

User clicks Create Deliverable with all fields empty

Inline error messages appear next to every required field simultaneously. Popup remains open with data preserved. No deliverable is created.

Project deleted after deliverables auto-populated

All deliverables associated with the deleted project are automatically moved to the Archived section on the Post Production board. Deliverable data (editor, due date, priority, chat history) is preserved in the archive.

Event date changed after deliverables auto-populated

Existing deliverable due dates are automatically recalculated based on the new event date. The original package configuration for due date offset (days/months after event) is re-applied.

Package line item deleted after auto-population

The deliverable associated with the deleted line item is automatically moved to the Archived section. The deliverable data is preserved in the archive with its original name and details.

User creates deliverable for a "Completed" project
#47
**FRD 1: Post Production Initiation & Manual Job Creation** > **8\. Edge Cases**
~240 tok
Allowed. The system does not restrict deliverable creation based on project pipeline status. This supports late additions and follow-up deliverables.

Auto-population fails for an event

The system logs the failure, skips the event, and retries on the next scheduled run (24 hours later). Failed events do not block successful auto-population for other events in the same or different projects.

Agency re-subscribes after a subscription downgrade

All previously created deliverable data becomes immediately accessible with zero data loss. The board displays all deliverables with their last saved status, assignments, and due dates.

Custom deliverable name exceeds 100 characters

Inline error: "Deliverable name cannot exceed 100 characters." Popup remains open.

Inherited field missing on auto-population (e.g., no Service Area)

Deliverable is still created. The missing field displays "—" in gray. Users can manually populate the field after creation.
#48
**FRD 1: Post Production Initiation & Manual Job Creation** > **9\. Acceptance Criteria**
~690 tok
## **9\. Acceptance Criteria**

*   The system correctly validates the agency's subscription tier on page load/navigation to the Post Production module and displays the upgrade prompt for unauthorized subscriptions. Subscription is not re-checked on individual actions within the module.
*   Deliverables are automatically populated on the Post Production board under "Post-event Processing" stage at 12:00 AM (agency timezone) on the day after the event date, with all data fields correctly inherited from the project and package. Missing inherited fields display "—" in gray.
*   If auto-population fails for an event, the system retries on the next scheduled run (24 hours later) without blocking other events.
*   The "+ Add Deliverable" button is visible to Agency Owner, Admin, Project Manager, and Supervisor Editor, and hidden from Junior Editors.
*   The "Add deliverable" popup correctly loads all projects (sorted A-Z, including Completed), dynamically populates events by Event Type based on project selection, and displays only preset and ala carte deliverable types in the dropdown.
*   The "Create Deliverable" button is always enabled, and clicking it with empty required fields shows inline error messages on each empty field without creating the deliverable. The popup remains open with entered data preserved.
*   Custom deliverable names are limited to 100 characters and are not saved as presets.
*   Manual deliverables created before the event date are stored but appear on the board only after the event date passes. They are visible on the project event page immediately.
*   Manual deliverables created after the event date appear immediately on the board.
*   Deliverables can be created for any project regardless of pipeline status, including Completed projects.
*   All required field validations are enforced on button click, and appropriate error messages are displayed for incomplete submissions.
*   The empty state message is displayed when no deliverables exist on the board.
*   Due dates are correctly calculated based on package configuration (days/months after event date) and recalculate automatically if the event date changes.
*   Default priority for all new deliverables is "Standard."
*   Contractors have no access to the Post Production module.
*   Phase 1 uses eight predefined, non-editable status stages.
*   Locked fields (Project Name, Deliverable Type, Event Date, Service Area, Brand) cannot be edited on the board. PM is editable.
*   When a project is deleted, its deliverables move to Archived. When a package line item is deleted, its associated deliverable moves to Archived.
*   When an agency re-subscribes after a downgrade, all previously created deliverable data is restored with zero data loss.
#49
**FRD 1: Post Production Initiation & Manual Job Creation** > **10\. Manual Test Cases**
~59 tok
## **10\. Manual Test Cases**

Test cases for this FRD are provided in the accompanying Excel file: [**Post\_Production\_Test\_Cases.xlsx — Sheet: "FRD1 Initiation & Manual Job"**](https://claude.ai/chat/Post_Production_Test_Cases.xlsx)
#50
**FRD 1: Post Production Initiation & Manual Job Creation** > **11\. Dependencies**
~191 tok
## **11\. Dependencies**

**Module/System**

**Dependency Type**

**Impact if Unavailable**

Subscription Management

Service

Cannot validate subscription tier. Module access blocked for all users.

Project Management

Data

Cannot fetch project names, event dates, service areas, brands, or project managers. Auto-population fails.

Package Management

Data

Cannot fetch deliverable line items or due date configurations. Auto-population fails and manual dropdown is empty except for custom option.

Ala Carte Item Management

Data

Ala carte items will not appear in the deliverable type dropdown. Only package presets and custom option available.

Event Management

Data

Cannot determine event dates for deliverable timing logic. Auto-population timing fails.
#51
**FRD 1: Post Production Initiation & Manual Job Creation** > **12\. References**
~93 tok
## **12\. References**

*   Figma Screenshots: Add Deliverable Popup (Images 8, 9), Board Default View (Image 29), All Sections Opened (Image 28)
*   Meeting Notes: Post\_Production\_Dec\_22\_2025.pdf
*   Initial Documentation: Pixally\_Post-production\_notes\_Shared.pdf
*   Meeting Transcript: Post-Production-1e0a29d7-a376.json

2\. Agency Side Post Production Access
#52
**FRD 2: Agency Side Post Production Access**
~47 tok
# **FRD 2: Agency Side Post Production Access**

**Module Name:** Post Production — Agency Side Access **Version:** 1.3 **Created Date:** February 12, 2026 **Last Updated:** March 26, 2026
#53
**FRD 2: Agency Side Post Production Access** > **1\. Module Overview**
~284 tok
## **1\. Module Overview**

**Module Name:** Post Production — Agency Side Access

**Purpose:** This sub-module defines the complete Post Production board experience for agency-side users (Agency Owner, Admin, and Project Manager). It covers the board layout, status management, editor assignment, editor payment tracking, media storage location management, internal review links, chat/communication system, client delivery workflow, search and filtering, column sorting, column customization, bulk actions, and all interactive behaviors available to agency-side roles.

**Business Goals:**

*   Provide agency users with a centralized, configurable board to manage all post-production deliverables across projects.
*   Enable efficient editor assignment and workload tracking to ensure timely delivery.
*   Facilitate transparent internal communication between project managers and editors through integrated chat (chat is never visible to clients).
*   Support client delivery workflows with link sharing and automated status updates.
*   Allow personalized board layouts with column sorting, resizing, and reordering, saved per user.
#54
**FRD 2: Agency Side Post Production Access** > **2\. User Roles & Permissions**
~372 tok
## **2\. User Roles & Permissions**

**Permission**

**Agency Owner**

**Admin**

**Project Manager**

View all deliverables on board

✓

✓

✓

Change status (any direction)

✓

✓

✓

Assign / reassign editors

✓

✓

✓

Mark editor as paid

✓

✓

✓

Add / edit media storage location

✓

✓

✓

Add / edit internal review link

✓

✓

✓

Deliver to client

✓

✓

✓

Access chat on all projects

✓

✓

Assigned projects only

Bulk actions: Status, Priority, Editors, Due Date, Media Storage Location, Archive

✓

✓

✓

Bulk action: Delete

✓

✓

✗

Row-level action: Archive

✓

✓

✓

Row-level action: Delete

✓

✓

✗

Sort columns

✓

✓

✓

Resize and reorder columns

✓

✓

✓

Invite editors

✓

✓

✗

**Supervisor editor access:** [**Link**](https://claude.ai/chat/68dc31ad-4315-41df-8ec3-caad1ef0e5df#bookmark=id.ot2caiw5vz8h)

**Chat Access Note:** Agency Owner and Admin have access to chat on all projects by default. Project Managers have chat access only on projects they are assigned to as PM.

**Team Member Access Note:** Any team member who is assigned to a project (regardless of their specific role within the agency) has access to the Post Production data for that project. This means if a team member is part of a project, they can view that project's post-production deliverables and access the chat for those deliverables.

**Excluded Roles:** Contractors have no access to the Post Production module. Clients interact only through the Client Portal (covered in FRD 3).
#55
**FRD 2: Agency Side Post Production Access** > **3\. User Flow**
~743 tok
## **3\. User Flow**

3.1 The agency user navigates to the Post Production module from the left sidebar.

3.2 The system loads the Post Production board displaying all deliverables grouped under collapsible status stage sections, with status tabs displayed horizontally at the top of the page: Post-event Processing, Processing Complete, Assigned to Editor, In Progress, Edit Complete, Revision Needed, Ready For Client, Delivered, and Archives.

3.3 Each status stage section displays a colored header with the stage name, the count of deliverables in parentheses, an info tooltip icon (ⓘ), and a collapse/expand chevron.

3.4 The user clicks on a status tab at the top of the page to scroll directly to that stage section on the board.

3.5 Within each stage section, the system displays a table with columns: Checkbox, Project Name, Deliverable Type, Editor, Chat, Status, Priority, Event Date, Due Date, Service Area, Brand, Media Storage Location, Editor Paid, Project Manager, Internal Review Link, Questionnaire, and Actions.

3.6 The user clicks on the sort arrow (↑↓) on any sortable column header to sort the deliverables within that stage section in ascending or descending order.

3.7 The user clicks on the status dropdown for any deliverable row and selects a new status from the dropdown to change the deliverable's workflow stage.

3.8 The system moves the deliverable to the corresponding stage section on the board and updates the count for both the previous and new stages.

3.9 The user clicks the "Assign" dropdown in the Editor column and selects an editor (Supervisor Editor or Junior Editor) from the list of available editors within the agency's subscription.

3.10 The system assigns the editor and sends a first email notification informing the editor of the assignment. A second, separate email is sent only when the deliverable's status later transitions to "Assigned to Editor," informing the editor that the project is now ready for them to begin work. If the status is already "Assigned to Editor" at the time of assignment, both emails are sent in sequence.

3.11 If no editor seats are available, the system displays "Editor limit reached — Upgrade subscription" instead of the editor list, and the user must upgrade the subscription before assigning.

3.12 The user clicks the Editor Paid checkbox to initiate the payment tracking process, but the checkbox is only enabled if an editor has been assigned to the deliverable.

3.13 Before checking the checkbox, the user clicks the edit (pencil) icon next to the "Paid" label, which opens the "Editor Payment" popup.

3.14 The user enters the Amount Paid (required) and optionally a Payment Note in the popup and clicks "Mark as Paid" to save. The system creates the payment record, activates the checkbox, and simultaneously creates an expense entry auto-categorized as "Editor Payment" in the Expense module. This expense entry syncs to COGX, and from COGX it is fetched into QuickBooks.
#56
**FRD 2: Agency Side Post Production Access** > **3\. User Flow**
~789 tok
3.15 The system activates the checkbox. When other users hover over the "Paid" label, a tooltip displays: Paid by (user name), Amount ($), Payment Date, and Payment Note (if any). A pencil icon allows editing the payment details.

3.16 The user clicks the chat icon on any deliverable row to open the chat panel on the right side of the screen.

3.17 The chat panel displays a threaded conversation linked to the specific deliverable (line item), with messages displayed in reverse chronological order (newest message first at the top), each message showing the sender's avatar, name, role, date, and message content.

3.17a The user closes the chat panel by clicking the close (×) icon or clicking outside the panel. Any unsent draft message in the text editor is discarded without warning.

3.18 The user types a message in the rich text editor at the bottom of the chat panel, which supports bold, italic, underline, @mentions, emoji, links, image attachments (up to 15MB per image), quotes, and bullet lists.

3.19 When the user types "@" followed by characters, the system displays a dropdown of taggable users filtered by the typed characters.

3.20 The user clicks "Send message" to post the message to the chat thread.

3.21 The user clicks the "Deliver to Client" button in the Actions column, which is visible for deliverables in "Edit Complete," "Revision Needed," and "Ready for Client" stages.

3.22 The system opens the "Client Delivery" popup with a text field labeled "Add Link Here (YouTube, Vimeo, Pic-time, etc)" and "Cancel" and "Save" buttons.

3.23 The user pastes the delivery link and clicks "Save."

3.24 The system saves the link, changes the deliverable status to "Delivered," moves it to the Delivered stage section, and sends an email notification to the client with the delivery link.

3.25 The user clicks the filter icon (funnel) at the top right of the board to open the Filters panel.

3.26 The Filters panel provides the following filter options: Status (dropdown), Assigned Editor (dropdown with search), Event Type (dropdown), Brand (dropdown), Priority (dropdown), Due Date (date picker with "To be Determined" toggle), and Service Types (Photography, Videography, Content Creation checkboxes), each with dropdown or picker selections.

3.27 The user applies one or more filters and the system refreshes the board to show only matching deliverables, hiding any stages that contain no results.

3.28 The user types a search query in the search bar at the top of the page to search across project names, client names, and deliverable types.

3.29 The system displays only stages and deliverables matching the search query, hiding empty stages.

3.30 The user selects one or more deliverable rows using the checkboxes on the left side of each row.

3.31 The system displays a bulk action bar below the stage header showing "Selected: \[N\] Deliverable(s)" with options for: Status, Priority, Editors, Due Date, Media Storage Location, Archive, and Delete (Delete visible only for Agency Owner and Admin).

3.32 The user selects a bulk action and the system applies the change to all selected deliverables simultaneously.
#57
**FRD 2: Agency Side Post Production Access** > **3\. User Flow**
~154 tok
3.33 The user hovers over the Project Manager avatar to view a tooltip displaying the PM's full name, role, timezone, email address, and phone number.

3.34 The user drags a column header to rearrange the column order on the board, and the system saves this preference for the current user.

3.35 The user drags the border between two column headers to resize the column width, and the system saves this preference for the current user.

3.36 The user scrolls down within any stage section, and the system loads the next batch of 50 deliverables via infinite scrolling, displaying a loading spinner during the fetch.
#58
**FRD 2: Agency Side Post Production Access** > **4\. Functional Logic**
~7 tok
## **4\. Functional Logic**
#59
**FRD 2: Agency Side Post Production Access** > **4\. Functional Logic** > 4.1 Board Layout and Status Stages
~595 tok
### 4.1 Board Layout and Status Stages

*   The Post Production board displays all deliverables grouped under eight status stages: Post-event Processing, Processing Complete, Assigned to Editor, In Progress, Edit Complete, Revision Needed, Ready for Client, and Delivered.
*   An additional "Archives" tab is available in the top navigation bar, which navigates to a separate Archived items view (covered in FRD 6).
*   **Status Tab Navigation:** The 8 status names are displayed as clickable tabs in a horizontal bar at the top of the board (below the page title). By default, all tabs appear in a gray/neutral state with no highlighting. Clicking a tab scrolls the page to the corresponding stage section and highlights that tab with the specific color of that status (e.g., Post-event Processing = yellow, Processing Complete = green, Assigned to Editor = orange, In Progress = yellow-green, Edit Complete = blue, Revision Needed = red, Ready for Client = pink, Delivered = green). Only one tab is highlighted at a time. Clicking another tab removes the highlight from the previous tab and applies it to the newly clicked tab. If no tab has been clicked, all remain gray.
*   Each stage section has a collapsible header that shows the stage name, the count of deliverables in that stage, and a tooltip icon (ⓘ) that describes the purpose of that stage when hovered.
*   The board does not auto-refresh. Users must manually reload the page or navigate away and back to see changes made by other users.
*   All status stage tooltips are static descriptions provided by the client and cannot be modified by users in Phase 1.
*   **Phase 1 Limitation:** In Phase 1, only the predefined 8 status stages are available. Users cannot add, remove, or modify stages. In Phase 2 (v2), users will have the capability to add their own custom stages or modify the existing predefined stages.
*   The board supports horizontal scrolling to accommodate all columns when the viewport is narrower than the total column width.
*   The "+ Add Deliverable" button is displayed at the top of the Post Production board (next to the page title). It opens the "Add deliverable" popup.
*   Each stage section independently supports infinite scrolling, loading the next batch of 50 deliverable rows when the user scrolls near the bottom of that section. A loading spinner is displayed during the fetch.
#60
**FRD 2: Agency Side Post Production Access** > **4\. Functional Logic** > 4.2 Column Configuration and Sorting
~387 tok
### 4.2 Column Configuration and Sorting

*   \* The default column order for the board is: Checkbox, Project Name, Deliverable Type, Editor, Chat, Status, Priority, Event Date, Due Date, Service Area, Brand, Media Storage Location, Editor Paid, Project Manager, Internal Review Link, Questionnaire, Actions.
*   The columns visible within each stage section may vary based on the stage. For example, the "Deliver to Client" button appears in the Actions column only for stages Edit Complete, Revision Needed, and Ready for Client. The "Client Delivery" link column appears in the Delivered stage instead of the "Deliver to Client" button.
*   All columns can be rearranged by dragging the column header to a new position, and the new order is persisted per user across sessions.
*   All columns can be resized by dragging the column border, and the new widths are persisted per user across sessions.
*   Column preferences (order and width) are stored on a per-user basis, so each user's layout is independent.
*   Sortable columns display sort arrows (↑↓) in the column header. Clicking a sort arrow toggles between ascending, descending, and default order.
*   The following columns are sortable: Project Name, Deliverable Type, Editor, Status, Priority, Event Date, Due Date, Service Area, Brand, Media Storage Location, Editor Paid, Project Manager, Internal Review Link, and Questionnaire.
*   Sorting applies within a single stage section and does not sort across stages.
*   Sort preferences are stored per user and persist across sessions.
#61
**FRD 2: Agency Side Post Production Access** > **4\. Functional Logic** > 4.3 Status Management
~349 tok
### 4.3 Status Management

*   Agency users (Owner, Admin, PM) can change the status of any deliverable to any other status in any direction using the status dropdown on each row. There are no status movement restrictions — any status can be changed to any other status at any time.
*   When a status is changed, the deliverable moves from its current stage section to the new stage section on the board, and both stage counts update immediately.
*   Status changes do not require confirmation dialogs — the change is applied immediately upon selection.
*   The eight available statuses are: Post-event Processing, Processing Complete, Assigned to Editor, In Progress, Edit Complete, Revision Needed, Ready for Client, and Delivered.
*   **Internal Review Link Dependency:** Moving a deliverable to a downstream status of "Edit Complete" or beyond (Edit Complete, Revision Needed, Ready for Client, Delivered) requires the Internal Review Link to be present. If the Internal Review Link is empty and a user attempts to change the status to any of these stages, the system blocks the change and displays an inline error: "Please add an internal review link before moving to this status." This restriction applies to forward (downstream) moves only — backward moves are unrestricted and do not require the link. This rule applies to all roles (Owner, Admin, PM, Supervisor Editor, Junior Editor).
#62
**FRD 2: Agency Side Post Production Access** > **4\. Functional Logic** > 4.4 Editor Assignment
~539 tok
### 4.4 Editor Assignment

*   The Editor column displays an "Assign" button with a dropdown arrow for unassigned deliverables.
*   Clicking the Assign dropdown shows a list of all editors (Supervisor Editors and Junior Editors) registered within the agency's team.
*   Each editor entry in the dropdown displays the editor's avatar and name/initials.
*   One deliverable can be assigned to only one editor at a time.
*   Different deliverables within the same project can be assigned to different editors.
*   Agency users can change the assigned editor at any point in the workflow, including after the deliverable has been delivered, to accommodate reassignment needs.
*   When an editor is assigned, the system sends a first email notification to the editor informing them of the new assignment.
*   When the deliverable's status later transitions to "Assigned to Editor," the system sends a second, separate email notification to the assigned editor with content stating that the project is now ready for the editor to begin work. This second notification is distinct from the assignment notification and has different message content. If the status is already "Assigned to Editor" at the time of assignment, both emails are sent in sequence.
*   If the agency's subscription editor seat limit has been reached, the dropdown displays "Editor limit reached — Upgrade subscription" and the user cannot assign additional editors until the subscription is upgraded.
*   The system counts all assigned editors across active deliverables against the subscription quota.
*   **Onboarding Pending Editors:** Editors who have been invited but have not yet completed their onboarding are still displayed in the editor assignment dropdown (both single-row and bulk). They appear with an "Onboarding Pending" icon/badge next to their name. On hover, a tooltip displays "Onboarding Pending." These editors can be assigned to deliverables — assignment proceeds normally and the deliverable is not blocked. After assignment, the editor's avatar in the Editor column on the board also displays the onboarding pending indicator until the editor completes onboarding.
#63
**FRD 2: Agency Side Post Production Access** > **4\. Functional Logic** > 4.5 Editor Payment Tracking
~8 tok
### 4.5 Editor Payment Tracking
#64
**FRD 2: Agency Side Post Production Access** > **4\. Functional Logic** > 4.5 Editor Payment Tracking
~800 tok
*   The "Editor Paid" column displays a checkbox and a "Paid" label for each deliverable.
*   The checkbox is disabled and cannot be interacted with until an editor has been assigned to the deliverable.
*   Next to the "Paid" label, an edit (pencil) icon is displayed. Clicking this icon opens the "Editor Payment" popup.
*   The "Editor Payment" popup contains three fields: "Amount Paid" (required, numeric with currency ($) icon), "Payment Date" (required, calendar date picker), and "Payment Note (optional)" as a textarea.
*   The "Amount Paid" field is **mandatory**. The user cannot click "Mark as Paid" without entering a valid amount. If the amount is empty, the system displays an inline error: "Please enter the payment amount."
*   The "Payment Date" field is **mandatory** and auto-fills with the current date (today) by default. The user can change it to any past or current date. Future dates are not allowed. If a future date is selected, the system displays an inline error: "Payment date cannot be a future date."
*   Clicking "Mark as Paid" performs the following actions:
    *   Saves the payment details (amount, payment date, note, paid-by user) to the deliverable record.
    *   Activates the Editor Paid checkbox on the board.
    *   Creates an expense entry in the **Expense module**, auto-categorized as **"Editor Payment."** No user input is needed for the expense category. The selected Payment Date flows to the Expense module along with the amount.
    *   The expense entry syncs to **COGX** from the Expense module.
    *   From COGX, the expense data is fetched into **QuickBooks** for accounting reconciliation.
*   Clicking "Cancel" closes the popup without saving.
*   When the Editor Paid checkbox is active (checked), hovering over the "Paid" label displays a tooltip showing: "Paid by: \[User Name\]," the amount (e.g., "$150.00"), the payment date, and the payment note (if any). A pencil icon is also visible — clicking it opens the "Editor Payment" popup for editing the saved details.
*   If the checkbox is unchecked or no payment data exists, clicking the pencil icon opens an empty payment popup.
*   **Unmark as Paid:** If a user clicks the Editor Paid checkbox to uncheck it (unmark as paid), the system displays a confirmation popup:
    *   **Title:** "Reset Payment Status"
    *   **Message:** "Are you sure you want to mark this payment as unpaid? How would you like to handle the existing expense?"
    *   **Keep Expense** — Payment status is reset. Expense entry stays in Pixally and QuickBooks.
    *   **Remove Expense** — Payment status is reset. Expense entry is deleted from Pixally and voided in QuickBooks. If QuickBooks is not connected, only the Pixally entry is deleted.
    *   **Buttons (displayed below the message):** "Keep Expense" | "Remove Expense" | "Cancel"
    *   If Cancel is clicked, no changes are made.
*   **Payment Reset on Editor Change:** When a user attempts to reassign an editor (change to a different editor) on a deliverable where the Editor Paid checkbox is already checked, the system displays a popup:
    *   **Title:** "Change Editor — Payment Recorded"
    *   **Message:** "This editor has already be
#65
**FRD 2: Agency Side Post Production Access** > **4\. Functional Logic** > 4.5 Editor Payment Tracking
~800 tok
en marked as paid, and an expense entry has been created. How would you like to handle the existing expense?"
    *   **Keep Expense** — Expense entry stays in Pixally and QuickBooks. Editor is changed. Payment data is cleared on the deliverable.
    *   **Remove Expense** — Expense entry is deleted from Pixally and voided in QuickBooks. Editor is changed. If QuickBooks is not connected, only the Pixally entry is deleted.
    *   **Buttons (displayed below the message):** "Keep Expense" | "Remove Expense" | "Cancel"
    *   If Cancel is clicked, no changes are made. The editor remains assigned and payment status is unchanged.
*   This Keep/Remove/Cancel popup applies to **single editor changes only**, not bulk. For bulk editor reassignment, the standard confirmation popup is shown (expense entries are retained by default).
*   If confirmed (Keep or Remove), the Editor Paid checkbox resets to unchecked and all previous payment data (amount, payment date, note, paid-by user) is cleared on the deliverable.
*   **Payment Access (Project Owner Rule):** Only the following users can mark/unmark editor payments:
    *   **Agency Owner** — can pay on all projects.
    *   **Admin** — can pay on all projects.
    *   **PM** — can pay only if they are the **Project Owner** of that specific project. Non-Project-Owner PMs see "Paid/Not Paid" as read-only text with no pencil icon.
    *   **Supervisor Editor** — cannot pay. Sees "Paid/Not Paid" as read-only text.
    *   **Junior Editor** — cannot pay. Sees "Paid/Not Paid" as read-only text.
*   The Project Owner is the user who created the project (by default) or the user assigned as Project Owner via lead form template. The Project Owner can be changed at any time.
*   **Expense Entry Persistence:** Expense entries created from editor payments are never auto-deleted by the Post Production module. When an editor is reassigned and payment resets, the expense entry remains in the Expense module as a historical record. If the agency wants to remove it, they must do so manually from the Expense/Reports module. The new editor starts with a clean payment state. If the editor has not been marked as paid, reassignment proceeds without any confirmation popup.
*   **Single Delete:** When deleting a single deliverable, the system displays a popup — title: "Delete Deliverable", message: "Are you sure you want to delete this deliverable? This action is permanent and cannot be undone. All associated data including chat history, delivery links will be permanently removed." If the editor is NOT paid, buttons: "Delete" | "Cancel." If the editor IS paid, an additional section appears: "Editor payment has been recorded. Choose how to handle the expense: **Keep Expense** — Deliverable is deleted. Expense entry stays in Pixally and QuickBooks. **Remove Expense** — Deliverable is deleted. Expense entry is deleted from Pixally and voided in QuickBooks." Buttons: "Keep Expense" | "Remove Expense" | "Cancel."
*   **Bulk Delete:** When bulk deleting deliverables, the system displays a popup — title: "Delete Deliverables", message: "Are you sure you want to delete \[N\] deliverable(s)? This action is permanent and cannot be undone.
#66
**FRD 2: Agency Side Post Production Access** > **4\. Functional Logic** > 4.5 Editor Payment Tracking
~195 tok
All associated data including chat history, delivery links will be permanently removed." If NONE have paid editors, buttons: "Delete" | "Cancel." If SOME have paid editors, an additional section appears: "\[Y\] deliverable(s) have editor payments already recorded. These deliverables will be skipped and will not be deleted." Buttons: "Continue" | "Cancel." After deletion, a toast displays: "Successfully deleted \[X\] of \[N\] deliverable(s). \[Y\] could not be deleted because payment was already recorded."
*   **Expense Module Sync:** If an expense entry is deleted directly from the Expense module, the associated deliverable in Post Production is automatically marked as unpaid (Editor Paid checkbox unchecks). This sync occurs on the next page refresh, not in real-time.
#67
**FRD 2: Agency Side Post Production Access** > **4\. Functional Logic** > 4.5 Editor Payment Tracking
~577 tok
**4.6 Media Storage Location**

*   The Media Storage Location column displays a placeholder "Type or paste to add" when no location has been set.
*   Clicking on the cell opens a popover with two tabs: "Saved Locations" and "Custom."
*   The "Saved Locations" tab displays a list of previously created storage locations as color-coded tags (e.g., "Hal9000" in purple, "Bender" in green).
*   The user can select a saved location by clicking on it, which populates the cell with the color-coded tag and a remove (×) icon.
*   The "Custom" tab displays a text field labeled "Link or Custom Value" where the user can type or paste a URL (e.g., a Dropbox or Google Drive link) or a custom text value.
*   Clicking "Save" on the Custom tab saves the entered value and displays it as a truncated link with a remove (×) icon in the cell.
*   Clicking the remove (×) icon on a saved location or custom link clears the media storage location for that deliverable.
*   Agency users can manage saved locations through an "Edit Locations" modal accessible from the Saved Locations tab.
*   **Media Storage Location Management Roles:** Admin, Supervising Editor, and Project Manager can create, edit, and delete saved locations. There is no role hierarchy — anyone with access can edit or delete anyone else's entry.
*   Media storage locations can be added or removed at any stage of the deliverable workflow. The remove (×) icon is always available regardless of deliverable status.
*   The "Edit Locations" modal displays all saved locations as color-coded entries with drag handles for reordering, edit (pencil) icons, and delete (trash) icons.
*   Clicking "Create" in the Edit Locations modal opens the "Create New Location" popup with a "Field Name" text input and a color picker (supporting hex, RGB, and opacity controls).
*   Clicking the edit icon opens the "Edit Location" popup with the same fields pre-populated, and a "Save Changes" button.
*   Clicking the delete icon opens a confirmation dialog: "Are you sure you want to delete this saved location? It will be removed from your account and from all places where it has been used. This action cannot be undone." with "Cancel" and "Delete" buttons.
*   Saved locations are shared across the entire agency — all agency users see the same set of locations.
#68
**FRD 2: Agency Side Post Production Access** > **4\. Functional Logic** > 4.7 Internal Review Link
~135 tok
### 4.7 Internal Review Link

*   The Internal Review Link column displays a placeholder "Haven't been added yet" when no link has been set.
*   The field is a simple text/URL input that can be typed into directly on the board by clicking the cell.
*   Any agency user (Owner, Admin, PM) can add or edit the internal review link.
*   Editors (both Supervisor and Junior) can also add and edit the internal review link.
*   An info tooltip icon (ⓘ) is displayed in the column header, explaining the purpose of the internal review link field.
#69
**FRD 2: Agency Side Post Production Access** > **4\. Functional Logic** > 4.8 Chat System
~5 tok
### 4.8 Chat System
#70
**FRD 2: Agency Side Post Production Access** > **4\. Functional Logic** > 4.8 Chat System
~800 tok
*   Each deliverable row has a chat icon in the Chat column. If there are unread messages, the icon displays a badge with the unread count. The badge shows the exact count up to 99; if the count exceeds 99, the badge displays "99+."
*   Clicking the chat icon opens a right-side panel displaying the chat thread for that specific deliverable (line item).
*   Each chat thread is linked to a specific deliverable and contains all messages exchanged about that deliverable.
*   **Chat is strictly internal and is never visible to clients.** Clients do not have access to the Post Production chat in any form. The Project Manager communicates with the client separately and relays feedback to editors through this internal chat.
*   Messages are displayed in reverse chronological order (newest message first at the top of the thread). The most recent message is always visible without scrolling.
*   Chat messages display the sender's avatar, full name, role (e.g., "Editor," "Project Manager"), date, and message content.
*   Unread messages are visually highlighted with a light background color to distinguish them from previously read messages. Once the user views the messages, the highlight is removed.
*   The rich text editor at the bottom of the chat panel supports: bold, italic, underline, @mention tagging, emoji insertion, link insertion, image attachments (maximum 15MB per image), block quotes, and bullet/numbered lists.
*   No document file attachments are allowed in chat — only images and links.
*   \* The @mention feature triggers a popover dropdown when the user types "@" followed by characters. The dropdown shows only the following users: the Project Manager assigned to that deliverable's project, editors (Supervisor and Junior) assigned to deliverables within that project, and Agency Owner and Admin (always visible by default). Project Managers not assigned to the project and editors not assigned within the project are not shown in the @mention dropdown.
*   \* Each message has two action icons: reply and delete (trash). There is no forward option.
*   **\* \*\*Delete permissions:\*\*** Agency Owner and Admin can delete any message in any chat thread. All other users (PM, Supervisor Editor, Junior Editor) can delete only their own messages.
*   \* "Send message" button posts the message. "Cancel" clears the editor without posting.
*   \* Closing the chat panel (via × icon or clicking outside) discards any unsent draft message without warning.
*   \* Chat history is preserved throughout the entire project lifecycle and is never deleted when deliverables move between stages.
*   \* \*\*Chat messages from deleted team members\*\* retain the sender's original name and role label as a historical record. Messages are not anonymized or removed when a team member is deleted from the system.
*   \* Unread message counts are personalized per user. Each user's unread count reflects only messages they have not yet read.
*   \* When a user opens a chat panel, all unread messages in that thread are immediately marked as read for that user, and the unread count for that thread resets to zero. The user does not need to scroll through individual messages — openin
#71
**FRD 2: Agency Side Post Production Access** > **4\. Functional Logic** > 4.8 Chat System
~173 tok
g the panel is sufficient.
*   \* Email notifications are triggered when a user is tagged via @mention in a chat message.
*   \* The primary assigned editor always receives email notifications for activity on their deliverable's chat thread, regardless of whether they are tagged.
*   \* Other users receive email notifications only when explicitly tagged.
*   \* \*\*PM Removal from Project:\*\* If a Project Manager is removed from a project, their chat access to all deliverable threads in that project is revoked immediately. They cannot view or send new messages in those threads. Their previously sent messages remain visible in the thread with their original name and role label intact.
#72
**FRD 2: Agency Side Post Production Access** > **4\. Functional Logic** > 4.9 Client Delivery Workflow
~568 tok
### 4.9 Client Delivery Workflow

*   The "Deliver to Client" button appears in the Actions column for deliverables in the following stages: Edit Complete, Revision Needed, and Ready for Client.
*   The button is not displayed for deliverables in other stages (Post-event Processing, Processing Complete, Assigned to Editor, In Progress, or Delivered).
*   Only Agency Owner, Admin, and Project Manager can see and click the "Deliver to Client" button. This button is hidden for Supervisor Editors and Junior Editors.
*   Clicking "Deliver to Client" opens the "Client Delivery" popup with a text field labeled "Add Link Here (YouTube, Vimeo, Pic-time, etc)."
*   The user enters the delivery link and clicks "Save."
*   The delivery link field accepts only valid URLs (http:// or https://), with a maximum length of 250 characters. Plain text entries that are not valid URLs are rejected with an error: "Please enter a valid URL (http:// or https://)."
*   Upon saving, the system stores the link, changes the deliverable status to "Delivered," moves it to the Delivered stage, and triggers an email notification to the client containing the delivery link.
*   The delivery link becomes visible to the client on their client portal under their deliverables section.
*   In the Delivered stage, the "Deliver to Client" button is replaced by a "Client Delivery" column showing the delivery link as a clickable truncated URL.
*   If a client rejects the deliverable and the agency user changes the status back to an earlier stage (e.g., "Revision Needed"), the "Deliver to Client" button reappears in the Actions column.
*   When re-delivering after a revision, the Client Delivery popup opens with the previously saved delivery link pre-populated in the text field. The agency user can either keep the existing link (e.g., if they replaced the video at the same Vimeo URL) or clear it and enter a new link.
*   **Re-delivery Email Logic:** If the user saves with a new (changed) link, the system sends a new email notification to the client with the updated link. If the user saves with the same unchanged pre-populated link, the system skips the email notification to avoid duplicate emails to the client.
*   Clicking "Cancel" in the popup closes it without any changes.
#73
**FRD 2: Agency Side Post Production Access** > **4\. Functional Logic** > 4.10 Outsource Edits
~124 tok
### 4.10 Outsource Edits

*   The "Outsource Edits" button is displayed at the top right of the Post Production board, next to the search bar.
*   Clicking this button redirects the user to the Uncut Gems website sign-up page in a new browser tab.
*   In Phase 2, this button will be integrated with the Uncut Gems API to allow ordering editing services directly from the Post Production module.
*   In Phase 1, the button serves only as a redirect with no data exchange between the two platforms.
#74
**FRD 2: Agency Side Post Production Access** > **4\. Functional Logic** > 4.11 Questionnaire
~269 tok
### 4.11 Questionnaire

*   The Questionnaire column displays a "View" button for each deliverable.
*   If no contractors exist for the deliverable's event, the "View" button is disabled (grayed out, not clickable).
*   Clicking "View" opens the **"View Questionnaire" popup** listing all contractors linked to that deliverable's event. Each row in the popup displays:
    *   **Contractor Name**
    *   **Services** provided by that contractor
    *   **"View Questionnaire" button**
*   One deliverable may have multiple contractors — each appears as a separate row in the popup.
*   If a contractor has submitted their questionnaire, the "View Questionnaire" button is enabled. Clicking it opens the filled questionnaire in a **new browser tab** as a full-page read-only view.
*   If a contractor has NOT submitted their questionnaire, the "View Questionnaire" button is disabled (grayed out). On hover, a tooltip displays: "Questionnaire not yet submitted by this contractor."
*   All roles can view questionnaires: Owner, Admin, PM, Supervisor Editor, and Junior Editor.
#75
**FRD 2: Agency Side Post Production Access** > **4\. Functional Logic** > 4.12 Filters and Search
~517 tok
### 4.12 Filters and Search

*   The filter icon (funnel) at the top right of the board opens a Filters panel.
*   The Filters panel for agency users includes the following filter options:
*   **Status (dropdown)**: All 8 statuses — Post-Event Processing, Processing Complete, Assigned to Editor, In Progress, Edit Complete, Revision Needed, Ready for Client, Delivered.
*   \* \*\***Assigned Edito**r\*\* (dropdown with search): Lists all editors with search capability. Shows "All Editors" by default.
*   \* \*\***Event Type**\*\* (dropdown): Wedding, Corporate, Real Estate, Others. Shows "All Events" by default.
*   \* \*\***Brand**\*\* (dropdown): All agency brands. Shows "All Brands" by default.
*   \* \*\***Priority**\*\* (dropdown): Standard, High. Shows "All Priorities" by default.
*   \* \*\***Due Date**\*\* (date picker): Filters deliverables by their due date. Shows all deliverables where the due date equals the selected date (exact date match). Includes a \*\*"**To be Determined" toggle**\*\* — when enabled, the filter shows only deliverables whose due date is not defined (null/empty). When the toggle is on, the date picker is disabled since the filter is specifically looking for deliverables without a due date.
*   \* \*\***Service Types\*\*** (checkboxes): Photography, Videography, Content Creation. Multiple can be selected.
*   \* There is no Event Date filter. Filtering is by Due Date only.
*   \* Each filter supports single or multi-select where applicable.
*   \* A reset button (circular arrow icon) in the Filters panel clears all applied filters.
*   \* Applied filters are saved permanently per user in their preferences. Filters persist across page refreshes, module navigation, and login sessions until the user explicitly clears them using the reset button.
*   \* The search bar at the top of the board accepts free-text search across project names, client names, and deliverable types.
*   \* When a search or filter is active, the system displays only the stages that contain matching results and hides all empty stages.
#76
**FRD 2: Agency Side Post Production Access** > **4\. Functional Logic** > 4.13 Bulk Actions
~5 tok
### 4.13 Bulk Actions
#77
**FRD 2: Agency Side Post Production Access** > **4\. Functional Logic** > 4.13 Bulk Actions
~800 tok
*   When the user selects one or more deliverables using the row checkboxes, a bulk action bar appears below the stage section header.
*   The bar displays: "Selected: \[N\] Deliverable(s)" followed by action buttons: Status, Priority, Editors, Due Date, Media Storage Location, Archive, and Delete.
*   The Delete option is visible only to Agency Owner and Admin. It is hidden for Project Managers.
*   **Deliver to Client is not available as a bulk action.** Client delivery must be performed individually per deliverable using the row-level "Deliver to Client" button.
*   Each bulk action button opens a dropdown or popover allowing the user to select the value to apply to all selected deliverables.
*   **Partial Success Behavior:** Bulk actions follow a partial success pattern. If some selected deliverables cannot be updated due to validation failures, the system proceeds with the deliverables that pass validation and skips those that fail. A toast message reports the outcome:
    *   All succeeded: "Successfully updated \[N\]/\[N\] deliverables."
    *   Partial success: "Successfully updated \[X\]/\[N\] deliverables. \[Y\] could not be updated because \[reason\]."
    *   All blocked: "No deliverables were updated. All \[N\] were blocked because \[reason\]."
*   **Bulk Editor Assignment — Brand Filtering:** When using the bulk Editors action across multiple selected deliverables belonging to different brands, the editor selection list displays only editors common to all selected brands (the intersection). Editors not associated with every selected brand do not appear. If no common editors exist across the selected brands, the dropdown shows "No editors found." Onboarding-pending editors who match the brand intersection are included in the list with the same "Onboarding Pending" icon and hover tooltip. This applies to all roles with bulk editor access (Owner, Admin, PM, Supervisor).
*   **Bulk Editor Assignment — Paid Editor Handling:** If any selected deliverables have the Editor Paid checkbox already checked, the system displays a confirmation popup: "\[X\] of \[N\] selected deliverables have editors already marked as paid, and expense entries have been created in the Financial Expense module. Are you sure you want to change these editors?" The user must click "Yes, Continue" to proceed or "Cancel" to abort. If confirmed, all selected deliverables are updated (including paid ones), payment resets for paid deliverables, and expense entries remain in the Expense module for manual removal if needed. Toast message reports: "Successfully updated \[N\]/\[N\] deliverables."
*   **Bulk Status Change — Internal Review Link Dependency:** When using the bulk Status action to move deliverables to "Edit Complete" or beyond, deliverables missing the Internal Review Link are skipped. The system reports via toast:
    *   All succeeded: "Successfully updated \[N\]/\[N\] deliverables."
    *   Partial: "Successfully updated \[X\]/\[N\] deliverables. \[Y\] could not be updated because the internal review link was missing."
    *   All blocked: "No deliverables were updated. All \[N\] were blocked because the internal review link was missing."
*   Bulk actions
#78
**FRD 2: Agency Side Post Production Access** > **4\. Functional Logic** > 4.13 Bulk Actions
~377 tok
apply to all selected deliverables simultaneously, even if selected across multiple stage sections.
*   Cross-stage selection is allowed — the user can select deliverables from different stages and apply a single bulk action to all of them at once. The bulk action bar displays the total count of all selected deliverables across stages.
*   **Bulk Archive Confirmation Popup:** Clicking "Archive" in the bulk action bar opens a confirmation popup with the title "Archive Deliverables" and message: "Are you sure you want to archive \[N\] deliverable(s)? They will be moved to the Archived section and removed from the active board. You can retrieve them later and they will return to their previous status." The user clicks "Archive" to proceed or "Cancel" to abort.
*   **Bulk Delete Confirmation Popup:** Clicking "Delete" in the bulk action bar opens a confirmation popup — title: "Delete Deliverables", message: "Are you sure you want to delete \[N\] deliverable(s)? This action is permanent and cannot be undone. All associated data including chat history, delivery links will be permanently removed." If NONE have paid editors: buttons "Delete" | "Cancel." If SOME have paid editors: additional section — "\[Y\] deliverable(s) have editor payments already recorded. These deliverables will be skipped and will not be deleted." Buttons: "Continue" | "Cancel." After deletion, toast: "Successfully deleted \[X\] of \[N\] deliverable(s). \[Y\] could not be deleted because payment was already recorded."
#79
**FRD 2: Agency Side Post Production Access** > **4\. Functional Logic** > 4.14 Three-Dot Actions Menu
~346 tok
### 4.14 Three-Dot Actions Menu

*   Each deliverable row has a three-dot (⋮) menu icon in the Actions column.
*   Clicking the three-dot menu displays two options: "Archive" and "Delete."
*   The "Delete" option is visible only to Agency Owner and Admin. It is hidden for Project Managers.
*   Supervisor Editors and Junior Editors do not see the three-dot menu at all.
*   **Archive Confirmation Popup:** Clicking "Archive" opens a confirmation popup with the title "Archive Deliverable" and message: "Are you sure you want to archive this deliverable? It will be moved to the Archived section and removed from the active board. You can retrieve it later and it will return to its previous status." The user clicks "Archive" to proceed or "Cancel" to abort.
*   **Delete Confirmation Popup:** Clicking "Delete" opens a confirmation popup — title: "Delete Deliverable", message: "Are you sure you want to delete this deliverable? This action is permanent and cannot be undone. All associated data including chat history, delivery links will be permanently removed." If editor is NOT paid: buttons "Delete" | "Cancel." If editor IS paid: additional section appears — "Editor payment has been recorded. Choose how to handle the expense: Keep Expense (stays in Pixally/QB) or Remove Expense (deleted from Pixally, voided in QB)." Buttons: "Keep Expense" | "Remove Expense" | "Cancel."
#80
**FRD 2: Agency Side Post Production Access** > **4\. Functional Logic** > 4.15 Due Date Management
~154 tok
### 4.15 Due Date Management

*   Due dates that are auto-populated from the package display as formatted dates (e.g., "Oct 9").
*   If no due date exists, the cell displays a "+ Due Date" link that the user can click to add a due date.
*   Clicking the due date cell or the "+ Due Date" link opens a calendar date picker popup.
*   The calendar popup allows the user to select a date, and the selected date is saved immediately.
*   The due date cannot be set to a date in the past or a date before the event date.
*   A "Remove Selection" button at the bottom of the calendar allows the user to clear the due date.
#81
**FRD 2: Agency Side Post Production Access** > **4\. Functional Logic** > 4.16 Project Name and Navigation
~114 tok
### 4.16 Project Name and Navigation

*   The Project Name column displays the project name as a clickable link with the event type shown as a color-coded label beneath it (e.g., "● REHEARSAL DINNER" in blue, "● WEDDING" in yellow, "● ENGAGEMENT PHOTOSHOOT" in red).
*   Clicking the project name navigates the user to the project's event detail page.
*   The chat icon (with unread badge) may also be displayed next to the project name in some stage views.
#82
**FRD 2: Agency Side Post Production Access** > **4\. Functional Logic** > 4.17 Invite Editor
~145 tok
### 4.17 Invite Editor

*   Agency Owner and Admin can invite new editors to the team from within the Post Production module.
*   The "Invite Editor" popup contains fields: Full Name (required), Work Email (required), Phone Number (optional with country code selector), Personal Email Address (optional), and Brand(s) (multi-select dropdown).
*   Clicking "Invite" sends an invitation email to the editor and adds them to the agency's team member list.
*   Clicking "Cancel" closes the popup without action.
*   Invited editors count against the agency's subscription seat limit.
#83
**FRD 2: Agency Side Post Production Access** > **5\. Field Details & Validations**
~10 tok
## **5\. Field Details & Validations**
#84
**FRD 2: Agency Side Post Production Access** > **5\. Field Details & Validations** > 5.1 Board Column Fields
~581 tok
### 5.1 Board Column Fields

**Field Name**

**Field Type**

**Editable By**

**Validation Rules**

Project Name

Text (clickable link)

Not editable

Auto-populated from project. Clicking navigates to event detail page. Sortable.

Deliverable Type

Dropdown

Agency users

Shows preset and ala carte items. Not editable for auto-populated deliverables. Sortable.

Editor

Dropdown

Agency users, Supervisor Editor

Must be a registered team member. Onboarding-pending editors shown with icon + hover tooltip; can be assigned normally; indicator displayed on board. Subject to subscription seat limits. Sortable.

Chat

Icon + Badge

All (via click)

Badge shows unread count per user (exact count up to 99, displays "99+" if exceeded). Newest messages first.

Status

Dropdown

Agency users (any direction)

8 predefined status options. No custom statuses in Phase 1. Sortable.

Priority

Dropdown

Agency users

Options: Standard (default, green), High (red), Sortable.

Event Date

Date (read-only)

Not editable

Auto-populated from project event. Sortable.

Due Date

Date (calendar picker)

Agency users

Cannot be past date or before event date. "Remove Selection" clears the field. Sortable.

Service Area

Text (read-only)

Not editable

Auto-populated from project. Sortable.

Brand

Icon/Label (read-only)

Not editable

Auto-populated from project. Sortable.

Media Storage Location

Tag/Link

Agency users

Saved location (color tag) or custom link/text. Max 200 characters. Truncated to 50 characters with ellipsis on display; hover tooltip shows full text. Removable via (×) icon. Sortable.

Editor Paid

Checkbox + Popup

Agency users

Disabled until editor is assigned. Payment amount is mandatory; payment note is optional. Reassigning a paid editor triggers a confirmation popup. Sortable.

Project Manager

Avatar + Initials

Not editable

Auto-populated. Hover shows tooltip with full details. Sortable.

Internal Review Link

Text/URL

Agency users, All Editors

Free-form text. Placeholder: "Haven't been added yet." Sortable.

Questionnaire

Button ("View")

Read-only

Opens contractor and client questionnaires in read-only view. Sortable.

Actions

Button / Menu

Role-dependent

"Deliver to Client" or "Client Delivery" link depending on stage. Three-dot menu: Archive, Delete (Owner/Admin only).
#85
**FRD 2: Agency Side Post Production Access** > **5\. Field Details & Validations** > 5.2 Editor Payment Popup Fields
~182 tok
### 5.2 Editor Payment Popup Fields

**Field Name**

**Field Type**

**Required**

**Validation Rules**

Amount Paid

Numeric with currency ($) icon

Yes

Numeric only. Max 5 digits before the decimal point, max 2 decimal places. Range: $0.01–$99,999.99. Negative values are not allowed. The "$" prefix is auto-displayed, not user-entered. Non-numeric input is rejected. On save, amount is sent to Expense module as "Editor Payment" category.

Payment Date

Calendar Date Picker

Yes

Auto-fills with current date (today) by default. User can select any past or current date. Future dates are not allowed. The selected date flows to the Expense module along with the amount.

Payment Note

Textarea

No

Optional. Free-form text.
#86
**FRD 2: Agency Side Post Production Access** > **5\. Field Details & Validations** > 5.3 Client Delivery Popup Fields
~69 tok
### 5.3 Client Delivery Popup Fields

**Field Name**

**Field Type**

**Required**

**Validation Rules**

Delivery Link

URL

Yes

Cannot be blank when clicking "Save." Must be a valid URL starting with http:// or https://. Plain text (non-URL) is rejected. Max 250 characters.
#87
**FRD 2: Agency Side Post Production Access** > **5\. Field Details & Validations** > 5.4 Invite Editor Popup Fields
~135 tok
### 5.4 Invite Editor Popup Fields

**Field Name**

**Field Type**

**Required**

**Validation Rules**

Full Name

Text

Yes

Cannot be blank.

Work Email

Email

Yes

Must be a valid email format. Cannot be an email already registered in the system.

Phone Number

Phone with country code

No

Optional. Must be valid phone format if entered.

Personal Email Address

Email

No

Optional. Must be valid email format if entered.

Brand(s)

Multi-select dropdown

No

Displays all brands within the agency. Multiple brands can be selected.
#88
**FRD 2: Agency Side Post Production Access** > **5\. Field Details & Validations** > 5.5 Create/Edit Location Popup Fields
~74 tok
### 5.5 Create/Edit Location Popup Fields

**Field Name**

**Field Type**

**Required**

**Validation Rules**

Field Name

Text

Yes

Cannot be blank. Used as the display label for the location tag.

Color

Color Picker (Hex/RGB/Opacity)

Yes

Supports hex input, RGB sliders, and opacity slider.
#89
**FRD 2: Agency Side Post Production Access** > **6\. Success Message Handling**
~519 tok
## **6\. Success Message Handling**

**Action**

**Success Message**

**Post-Success Behavior**

Status changed

No explicit toast message

Deliverable moves to new stage section. Both stage counts update.

Editor assigned

"Editor assigned successfully."

Editor column updates with avatar and initials. First email sent immediately. Second email ("ready for work") sent only when status transitions to "Assigned to Editor." If editor is reassigned, payment resets to unchecked.

Editor payment marked

"Payment marked successfully."

Checkbox activates. Hover tooltip becomes available.Expense entry created in Expense module as "Editor Payment" category. Expense syncs to COGX → QuickBooks.

Delivery link saved

"Deliverable delivered to client successfully."

Status changes to "Delivered." Deliverable moves to Delivered stage. Email sent to client.

Media storage location saved

No explicit toast message

Cell updates with saved location tag or custom link.

Chat message sent

No explicit toast message

Message appears at top of chat thread (newest first). Notification sent to tagged users and primary editor.

Location created

"Location created successfully."

New location appears in Edit Locations list and Saved Locations dropdown.

Location edited

"Location updated successfully."

Location name and/or color updated across all usages.

Location deleted

"Location deleted successfully."

Location removed from all deliverables where it was used.

Editor invited

"Invitation sent successfully."

Editor added to team list pending acceptance. Seat count updated.

Bulk action applied

"\[N\] deliverables updated successfully."

All selected deliverables updated. Selections cleared. If any item fails validation, no changes are applied and an error is displayed.

Filter applied

No explicit message

Board refreshes showing only matching results. Empty stages hidden. Filters persist permanently per user until cleared.

Payment amount empty

Please enter the payment amount.

User clicks "Mark as Paid" without entering an amount in the Amount Paid field.
#90
**FRD 2: Agency Side Post Production Access** > **7\. Error Message Handling**
~782 tok
## **7\. Error Message Handling**

**Error Scenario**

**Error Message**

**Trigger Condition**

**Required Action**

Delivery link empty

"Please enter a delivery link."

User clicks "Save" in Client Delivery popup without entering a link.

User must enter a valid URL.

Delivery link invalid format

"Please enter a valid URL (http:// or https://)."

User enters plain text or a non-URL value in the delivery link field.

User must enter a URL starting with http:// or https://.

Delivery link exceeds 250 characters

"Delivery link cannot exceed 250 characters."

User enters a URL longer than 250 characters.

User must shorten the URL.

Editor seat limit reached

"Editor limit reached — Upgrade subscription."

User tries to assign an editor when all subscription seats are in use.

User upgrades subscription.

Payment amount invalid

"Please enter a valid numeric amount."

User enters non-numeric characters in the Amount Paid field.

User must enter a numeric value (e.g., 150.00).

Payment amount exceeds maximum

"Amount cannot exceed $99,999.99."

User enters an amount greater than $99,999.99.

User must enter an amount within the valid range ($0.01–$99,999.99).

Duplicate email on editor invite

"This email is already registered in the system."

User enters an email that already exists as a team member.

User enters a different email.

Invalid email format (invite)

"Please enter a valid email address."

Email field contains an improperly formatted email.

User corrects the email format.

Due date before event date

"Due date cannot be before the event date."

User selects a date earlier than the event date in the calendar picker.

User selects a valid future date.

Due date in the past

"Due date cannot be in the past."

User selects a past date in the calendar picker.

User selects a current or future date.

Location name empty

"Please enter a name for the location."

User clicks "Create" or "Save Changes" with an empty Field Name.

User enters a location name.

Chat file exceeds 15MB

"File size exceeds the 15MB limit. Please upload a smaller file."

User attempts to attach a file larger than 15MB in the chat editor.

User reduces the file size or selects a different file.

Media storage location exceeds 200 characters

"Location value cannot exceed 200 characters."

User enters a custom link or text longer than 200 characters.

User must shorten the entry.

Bulk action validation failure

"Successfully updated \[X\]/\[N\] deliverables. \[Y\] could not be updated because \[reason\]."

Some selected deliverables fail validation during a bulk update.

Successful updates persist. Failed items are skipped. Toast reports outcome.

Network failure during action

"Unable to complete the action. Please check your connection and try again."

Network error during any save operation.

User retries after connectivity is restored.

Payment amount negative or zero

"Please enter a valid amount greater than zero."

User enters $0.00, a negative value, or zero in the Amount Paid field.

User must enter a positive amount between $0.01 and $99,999.99.

Paid editor reassignment (single)
#91
**FRD 2: Agency Side Post Production Access** > **7\. Error Message Handling**
~348 tok
"This editor has already been marked as paid, and an expense entry has been created in the Financial Expense module. Are you sure you want to change this editor?"

User attempts to reassign an editor on a deliverable where Editor Paid is already checked.

User clicks "Yes, Continue" to proceed or "Cancel" to abort.

Paid editor reassignment (bulk)

"\[X\] of \[N\] selected deliverables have editors already marked as paid, and expense entries have been created in the Financial Expense module. Are you sure you want to change these editors?"

User uses bulk Editors action and one or more selected deliverables have Editor Paid checked.

User clicks "Yes, Continue" to proceed or "Cancel" to abort.

Internal Review Link missing on status change

"Please add an internal review link before moving to this status."

User attempts to change status to Edit Complete, Revision Needed, Ready for Client, or Delivered without an Internal Review Link.

User must add the Internal Review Link first.

Payment date is in the future

"Payment date cannot be a future date."

User selects a future date in the Payment Date field.

User must select today or a past date.

No common editors across selected brands

"No editors found."

User opens bulk Editors dropdown but selected deliverables span brands with no common editors.

User must narrow selection to deliverables within compatible brands.
#92
**FRD 2: Agency Side Post Production Access** > **8\. Edge Cases**
~728 tok
## **8\. Edge Cases**

**Edge Case**

**Expected System Behavior**

User changes status from "Delivered" back to "Revision Needed"

The deliverable moves back to the Revision Needed stage. The "Deliver to Client" button reappears. The previously saved delivery link is retained.

Two users edit the same deliverable simultaneously

Last-write-wins.

User resizes a column to minimum width

The column content truncates with ellipsis. The column cannot be resized below a minimum threshold.

User rearranges columns and logs out

Column order and width preferences are saved server-side and restored on next login.

Chat message contains @mention of a deleted user

The @mention displays as plain text. No email notification is sent.

User tries to mark editor as paid before assigning an editor

The checkbox remains disabled and cannot be interacted with. The pencil icon opens the popup but "Mark as Paid" is not available.

User deletes a saved media storage location that is in use

The location is removed from all deliverables where it was applied, as stated in the confirmation dialog.

Search returns no results

The board displays "No results found" and all stages are hidden.

User applies filter and then adds a new deliverable

The new deliverable appears only if it matches the active filters. Otherwise, the user must clear filters to see it.

Deliverable has both saved location and custom link

Only one can be active at a time. Setting a new value replaces the previous one.

Client rejects deliverable and agency re-delivers with new link

The new link replaces the old one in the client portal. The client receives a new email notification with the updated link. If the same link is saved again without changes, no email is sent.

User sorts by due date when some deliverables have no due date

Deliverables without due dates appear at the top when sorting ascending, and at the bottom when sorting descending.

User uploads file exactly at 15MB limit in chat

The upload is accepted. Only files strictly exceeding 15MB are rejected.

Team member assigned to project but not Owner/Admin/PM

They have access to post-production data for that specific project only.

Editor deleted from team while assigned to active deliverables

System auto-unassigns the editor from all deliverables. Deliverables remain in their current status. Editor Paid checkbox resets to unchecked for affected deliverables. No notification is sent to the deleted editor.

Re-delivery with unchanged link (same URL saved again)

System saves the delivery and changes status to "Delivered," but skips the client email notification since the link has not changed. This prevents duplicate emails to the client.

Bulk action — partial success

Deliverables that pass validation are updated. Those that fail are skipped. Toast reports outcome with count of succeeded/failed and reason.

Editor reassigned after payment marked
#93
**FRD 2: Agency Side Post Production Access** > **8\. Edge Cases**
~768 tok
System displays confirmation popup: "This editor has already been marked as paid, and an expense entry has been created in the Financial Expense module. Are you sure you want to change this editor?" If confirmed, Editor Paid resets, payment data cleared, expense entry retained in Expense module for manual removal. If cancelled, no changes.

User closes chat panel with unsent draft message

Draft is discarded without warning. No partial message is saved.

Chat unread count exceeds 99

Badge displays "99+" instead of the exact count.

User enters plain text instead of URL in delivery link

Error: "Please enter a valid URL (http:// or https://)." Save is blocked.

PM removed from project — chat access

PM's chat access to all deliverable threads in that project is revoked immediately. They cannot view or send new messages. Their previously sent messages remain visible with their original name and role label.

Deleted team member's chat messages

Messages retain the sender's original name and role label as a historical record. Messages are not anonymized or removed.

Bulk editor reassignment with paid editors

System displays confirmation popup with count. If confirmed, all updated (including paid), payment resets, expense entries retained. Toast reports success.

Questionnaire popup — contractor has not submitted

"View Questionnaire" button disabled with hover tooltip: "Questionnaire not yet submitted by this contractor."

Questionnaire popup — multiple contractors on same event

All contractors listed with name and services. Each has their own View Questionnaire button. Submitted ones open in new tab.

@mention shows non-assigned PM

Not possible. The @mention dropdown only shows PMs assigned to the deliverable's project, editors assigned within the project, and Owner/Admin. Non-assigned PMs are excluded.

Single status change to Edit Complete without Internal Review Link

System blocks the change with inline error: "Please add an internal review link before moving to this status."

Bulk status change to Ready for Client — some missing Internal Review Link

Deliverables with the link are updated. Those without are skipped. Toast: "Successfully updated X/N deliverables. Y could not be updated because the internal review link was missing."

Backward status move (e.g., Edit Complete → In Progress) without Internal Review Link

Allowed. The Internal Review Link requirement applies only to forward (downstream) status moves.

Bulk editor change across different brands

Editor dropdown shows only editors common to ALL selected brands. If no intersection exists, "No editors found" is displayed.

Expense entry after editor reassignment

Expense entry is never auto-deleted. Agency must manually remove from Expense/Reports module if needed.

Onboarding-pending editor assigned to deliverable

Assignment proceeds normally. Editor's avatar shows onboarding pending indicator on the board. Deliverable is not blocked. Indicator is removed once editor completes onboarding.

Onboarding-pending editor completes onboarding after assignment
#94
**FRD 2: Agency Side Post Production Access** > **8\. Edge Cases**
~33 tok
The onboarding pending indicator is removed from their avatar in the dropdown and on the board. No other changes to the deliverable.
#95
**FRD 2: Agency Side Post Production Access** > **9\. Acceptance Criteria**
~8 tok
## **9\. Acceptance Criteria**
#96
**FRD 2: Agency Side Post Production Access** > **9\. Acceptance Criteria**
~800 tok
*   All 8 status stages are displayed with correct counts, collapsible headers, and tooltip descriptions.
*   Agency users can change status in any direction, and deliverables move between stage sections accordingly.
*   **Internal Review Link is required** for moving any deliverable to Edit Complete or beyond (forward moves only). Single changes show inline error. Bulk changes skip deliverables missing the link and report via toast.
*   Editor assignment works correctly with subscription seat limit enforcement and triggers two separate email notifications: an assignment email sent immediately, and a "ready for work" email sent only when the status transitions to "Assigned to Editor."
*   When an editor is reassigned, the Editor Paid checkbox resets to unchecked and all previous payment data is cleared. Confirmation popup shown if editor was paid.
*   Editor Paid checkbox is disabled until an editor is assigned. Payment popup includes 3 fields: Amount Paid (mandatory, $0.01–$99,999.99, max 5 digits before decimal, 2 decimal places, "$" auto-displayed, no negatives), Payment Date (mandatory, auto-fills today, past/current only, flows to Expense module), and Payment Note (optional). On "Mark as Paid," the system creates an expense entry auto-categorized as "Editor Payment" in the Expense module, which syncs to COGX and then to QuickBooks. Hover tooltip shows Paid by, Amount, Date, Note (if any) with pencil icon to edit. Unmark as Paid triggers "Reset Payment Status" confirmation. Paid editor reassignment shows Keep Expense / Remove Expense / Cancel popup (single only). Expense entries are never auto-deleted — manual removal from Expense/Reports module if needed.
*   Media Storage Location supports both saved color-coded locations and custom links/text values (max 200 characters), with full CRUD operations on saved locations. Values exceeding 50 characters are truncated with ellipsis and show full text on hover.
*   Chat panel opens per deliverable with messages displayed newest-first, supports rich text formatting, @mentions, and file attachments up to 15MB (all file types supported). Chat actions are reply and delete only (no forward). Owner/Admin can delete any message; other users can delete only their own. @mention dropdown shows only: PM assigned to the project, editors assigned in the project, and Owner/Admin by default. Opening the chat panel marks all messages as read. Per-user unread counts (exact up to 99, "99+" for overflow) with light background highlighting. Closing the panel discards unsent drafts. PM removal from project revokes chat access immediately; sent messages remain visible. Deleted team members' messages retain original name and role.
*   Chat is strictly internal and never visible to clients.
*   Questionnaire "View" button opens popup listing all contractors for the event with name, services, and "View Questionnaire" button. Submitted questionnaires open in new tab (full page). Unsubmitted show disabled button with hover message. Button disabled when no contractors exist. All roles can view.
*   "Deliver to Client" button appears only for Edit Complete, Revision Needed, and Ready for Client stages and is hidden for edi
#97
**FRD 2: Agency Side Post Production Access** > **9\. Acceptance Criteria**
~558 tok
tors.
*   Client delivery validates that the link is a valid URL (http/https), max 250 characters, and rejects plain text. Status changes to "Delivered" and triggers client email. On re-delivery, email is skipped if the link is unchanged from the previous delivery.
*   Filters and search correctly narrow the board display and hide empty stages. Applied filters persist permanently per user in preferences until explicitly cleared via the reset button. Due Date filter uses exact date match. "To be Determined" toggle shows deliverables with no due date defined. There is no Event Date filter.
*   **Bulk actions follow partial success pattern** — deliverables that pass validation are updated, those that fail are skipped, and a toast reports the outcome.
*   Bulk editor assignment filters by brand intersection — only editors common to all selected brands appear. "No editors found" shown when no intersection exists.
*   Paid editor reassignment (single or bulk) triggers confirmation popup referencing Financial Expense module. On confirm, payment resets; expense entry stays for manual removal.
*   Bulk actions respect role-based restrictions (Delete hidden for PM). Deliver to Client is not available as bulk action.
*   Column sorting works on all sortable columns with ascending/descending toggle, persisted per user.
*   Column resize and reorder preferences persist per user across sessions.
*   Infinite scrolling loads batches of 50 deliverables within each stage section with a loading spinner.
*   The board does not auto-refresh. Users must manually reload to see changes made by other users.
*   Priority dropdown offers two options: Standard (green) and High (red).
*   If an editor is deleted from the team, they are auto-unassigned from all deliverables; deliverables remain in current status.
*   Contractors have no access to the Post Production module.
*   Any team member assigned to a project has access to that project's post-production data.
*   Onboarding-pending editors appear in both single and bulk editor dropdowns with "Onboarding Pending" icon and hover tooltip. They can be assigned normally. After assignment, the indicator shows on the board next to their avatar until onboarding is complete.
#98
**FRD 2: Agency Side Post Production Access** > **10\. Manual Test Cases**
~58 tok
## **10\. Manual Test Cases**

Test cases for this FRD are provided in the accompanying Excel file: [**Post\_Production\_Test\_Cases.xlsx — Sheet: "FRD2 Agency Side Access"**](https://claude.ai/chat/Post_Production_Test_Cases.xlsx)
#99
**FRD 2: Agency Side Post Production Access** > **11\. Dependencies**
~374 tok
## **11\. Dependencies**

**Module/System**

**Dependency Type**

**Impact if Unavailable**

Project Management

Data

Project names, event dates, service areas, brands, and project managers cannot be fetched. Board displays incomplete data.

Subscription Management

Service

Editor seat limits cannot be validated. Assignment may fail or be unrestricted.

Email Service

Service

Notifications for editor assignment, chat @mentions, and client delivery cannot be sent.

Notification Configuration (Future)

Service

In a future phase, users will be able to configure which chat email notifications they receive (e.g., all comments vs. only @mentions). In Phase 1, notifications follow default rules.

Client Portal

Integration

Delivery links cannot be made visible to clients. Client-side deliverable status does not update.

User Management / Team Members

Data

Editor list for assignment dropdown cannot be populated. Invite Editor cannot function.

Real-time Sync (WebSocket / Polling)

Service

Board does not auto-refresh. Users must manually reload to see changes by others.

Expense Module

Data/Integration

Editor payment amounts cannot be recorded as expenses. Payment can still be marked locally but no expense entry is created.

COGX

Integration

Expense data from editor payments cannot sync to COGX. Expenses remain in the Expense module only.

QuickBooks

External Integration

Editor payment expenses cannot be fetched from COGX into QuickBooks for accounting reconciliation.
#100
**FRD 2: Agency Side Post Production Access** > **12\. References**
~172 tok
## **12\. References**

*   Figma Screenshots: Board Views (Images 1, 2, 3, 28, 29, 30), Calendar Popup (Image 1), Editor Paid Tooltip (Image 2), Editor Paid Popup (Image 14), Client Delivery Popup (Image 5), Media Storage Location (Images 21-26), Chat Panel (Image 27), Filters (Image 18), Invite Editor (Image 19), PM Tooltip (Image 32), Rearrange Columns (Image 34), Resize Column (Image 35), Bulk Actions (Image 37), Three-dot Actions (Image 28)
*   Meeting Notes: Post\_Production\_Dec\_22\_2025.pdf
*   Initial Documentation: Pixally\_Post-production\_notes\_Shared.pdf
*   Meeting Transcript: Post-Production-1e0a29d7-a376.json

3\. Post Production Module Impact on Other Modules
#101
**FRD 3: Post Production Module Impact on Other Modules**
~51 tok
# **FRD 3: Post Production Module Impact on Other Modules**

**Module Name:** Post Production — Impact on Other Modules **Version:** 1.5 **Created Date:** February 12, 2026 **Last Updated:** July 14, 2026
#102
**FRD 3: Post Production Module Impact on Other Modules** > **1\. Module Overview**
~301 tok
## **1\. Module Overview**

**Module Name:** Post Production — Impact on Other Modules

**Purpose:** This sub-module documents all integration points and data flow impacts that the Post Production module has on other existing modules within the Pixally CRM platform. It covers the bidirectional relationship between Post Production and Project Management (agency side), the Client Portal deliverables widget with status mapping and email notification rules, package/invoice synchronization rules, the event page deliverables info bubble, and the project pipeline stage transitions triggered by post-production activities.

**Business Goals:**

*   Ensure that post-production activities are reflected across all relevant areas of the CRM for a unified user experience.
*   Provide clients with visibility into the delivery status of their contracted deliverables through the Client Portal, with simplified status labels ("Pending" / "Received") and controlled email notifications.
*   Maintain data consistency between packages, invoices, and the Post Production board to prevent discrepancies.
*   Automate project pipeline stage transitions based on post-production milestones to reduce manual effort.
#103
**FRD 3: Post Production Module Impact on Other Modules** > **2\. User Roles & Permissions**
~111 tok
## **2\. User Roles & Permissions**

**Role**

**View Post Production Data in Projects**

**View Client Portal**

**Modify Pipeline Stages**

Agency Owner

✓

N/A (Client role)

✓

Admin

✓

N/A (Client role)

✓

Project Manager

✓

N/A (Client role)

✓

Supervisor Editor

Read-only (limited tabs)

N/A

✗

Junior Editor

Read-only (limited tabs, assigned projects)

N/A

✗

Client

N/A

✓ (own projects only)

N/A

Contractor

N/A

N/A

N/A
#104
**FRD 3: Post Production Module Impact on Other Modules** > **3\. User Flow**
~5 tok
## **3\. User Flow**
#105
**FRD 3: Post Production Module Impact on Other Modules** > **3\. User Flow** > Impact on Project Management Module (Agency Side)
~428 tok
### Impact on Project Management Module (Agency Side)

3.1 When an event date passes and deliverables are auto-populated on the Post Production board, the system simultaneously updates the project's pipeline stage to "Post Production" in the Projects module.

3.2 The agency user navigates to the Projects module from the left sidebar and sees the project pipeline displayed as a horizontal stage bar at the top of the page: All Active Events, New Lead, Follow-up, Proposal Sent, Proposal Signed, Deposit Paid, Planning, Post Production, Completed, and Archived.

3.3 The project that has entered post-production is now displayed under the "Post Production" stage with its count updated accordingly.

3.4 The agency user clicks on the "Post Production" stage in the pipeline bar to view all projects currently in post-production.

3.5 The system displays a list of projects with columns: Event Date (with event type label), Project, Brand, Service Area, and Actions ("View Details" button).

3.6 The agency user clicks "View Details" on a project to navigate to the project event detail page.

3.7 On the project event detail page, the agency user can view event tabs (Overview, and individual event tabs like Rehearsal Dinner, Wedding, Engagement Photoshoot) with sub-tabs: Services, Raw Media, Notes, and Info.

3.8 When all deliverables for a project reach the "Delivered" status on the Post Production board, the system automatically transitions the project's pipeline stage from "Post Production" to "Completed" — but only if the "Post Production Deliverables Status" automation toggle is enabled in the Event Pipeline Settings. If the toggle is off, the agency must manually move the project to "Completed."
#106
**FRD 3: Post Production Module Impact on Other Modules** > **3\. User Flow** > Impact on Event Page Deliverables Widget
~231 tok
### Impact on Event Page Deliverables Widget

3.9 On the event page, the deliverables widget displays a checklist of all contracted deliverables for the event, with an optional expected timeline for delivery.

3.10 An info bubble (ⓘ) is displayed next to the "Deliverables" heading in the widget. Hovering or clicking the info bubble displays a tooltip explaining: "Items added manually to an invoice after the initial contract is signed will not show up here or on the post production board. To add them, use the '+ Add Jobs Manually' button on the Post Production board. Deliverables added here before the event will automatically appear on the Post Production board after the event date. Deliverables added after the event will appear on the Post Production board immediately."

3.11 Agency users can manually add deliverables to the widget using the "+" button, which allows adding items without modifying the contract.
#107
**FRD 3: Post Production Module Impact on Other Modules** > **3\. User Flow** > Impact on Client Portal
~245 tok
### Impact on Client Portal

3.12 The client logs into the Client Portal and navigates to their project's deliverables section.

3.13 The system displays a simplified status for each deliverable using two client-facing statuses: "Pending" (for all non-delivered statuses) and "Received" (for delivered statuses).

3.14 The client sees an aggregate view of all deliverables they have already received, plus any that are still pending.

3.15 When a deliverable reaches the "Delivered" status and a delivery link has been saved, the client sees the deliverable with a "Received" status and a clickable link to access their files. The system also sends the client an email notification with the delivery link.

3.16 The Client Portal is strictly read-only for status. If a client is dissatisfied with a delivered item, they must contact the agency (e.g., call or email the Project Manager), and the agency user changes the status on the Post Production board on behalf of the client.
#108
**FRD 3: Post Production Module Impact on Other Modules** > **3\. User Flow** > Package and Invoice Synchronization
~176 tok
### Package and Invoice Synchronization

3.18 The agency user creates or modifies a package for a project, marking specific line items as "Deliverable."

3.19 Only line items marked as "Deliverable" during package creation are auto-populated on the Post Production board after the event date.

3.20 Changes made to a package after deliverables have been auto-populated on the Post Production board do not retroactively update the existing deliverables on the board.

3.21 Deliverables added through separate invoices after the initial contract are not automatically synced to the Post Production board or the event page deliverables widget and must be added manually using the "+ Add Jobs Manually" flow.
#109
**FRD 3: Post Production Module Impact on Other Modules** > **4\. Functional Logic**
~7 tok
## **4\. Functional Logic**
#110
**FRD 3: Post Production Module Impact on Other Modules** > **4\. Functional Logic** > 4.1 Project Pipeline Stage Transition
~563 tok
### 4.1 Project Pipeline Stage Transition

*   When at least one deliverable for a project becomes active on the Post Production board (i.e., the event date has passed and the visibility flag is toggled), the system automatically moves the project from its current pipeline stage (typically "Planning") to the pipeline stage configured in the "Post Production" automation setting. This applies to both auto-populated and manually created deliverables.
*   The "Post Production" stage in the Projects pipeline displays the total count of projects currently in post-production.
*   If a project has multiple events and only some events have passed their dates, the project moves to "Post Production" after the first event date passes and deliverables become active.
*   **Auto-Transition to Completed (Automation Toggle):** The automatic transition from "Post Production" to "Completed" is controlled by the "Post Production Deliverables Status" toggle in the Event Pipeline Settings.
    *   **If toggle is ON:** When every deliverable across all events of a project reaches "Delivered" status, the system automatically transitions the project to "Completed." If any deliverable is not in "Delivered" status, the project stays in or moves back to the Post Production stage.
    *   **If toggle is OFF:** No automatic transition to "Completed" occurs. The agency must manually move the project to "Completed" in the Projects pipeline.
*   **Pipeline Rollback:** If any deliverable is changed back from "Delivered" to an earlier status (e.g., Revision Needed) by an agency user, the system automatically moves the project back from "Completed" to "Post Production." This applies regardless of the automation toggle setting — rollback is always automatic.
*   **Manual Override:** Agency users can manually move a project to "Completed" at any time without any warning or restriction, regardless of deliverable statuses.
*   If there are no deliverables in the event, the project needs to be moved manually to the "Completed" stage.
*   **Completed Projects and Post Production Board:** When a project reaches "Completed" status, its deliverables remain on the active Post Production board. Deliverables are not removed or hidden based on pipeline status.
#111
**FRD 3: Post Production Module Impact on Other Modules** > **4\. Functional Logic** > 4.2 Projects Module — Post Production Stage View
~174 tok
### 4.2 Projects Module — Post Production Stage View

*   The Projects module displays a horizontal pipeline bar at the top with stage counts, including the "Post Production" stage.
*   Clicking the "Post Production" stage filters the project list to show only projects in that stage.
*   The filtered list displays projects with columns: Event Date (formatted as "Sat, October 5, 2024" with event type color label), Project (project name), Brand, Service Area, and Actions ("View Details" button).
*   Each event within a project is listed as a separate row, allowing the agency user to view details for individual events.
*   Clicking "View Details" navigates to the project's event detail page.
#112
**FRD 3: Post Production Module Impact on Other Modules** > **4\. Functional Logic** > 4.3 Project Detail Page — Event Tabs and Sub-Tabs
~277 tok
### 4.3 Project Detail Page — Event Tabs and Sub-Tabs

*   The project detail page displays a hero banner with the project name, date range, location, and timezone.
*   Below the banner, event tabs are displayed: Overview (spanning full project date range), and individual event tabs (e.g., Rehearsal Dinner, Wedding, Engagement Photoshoot) each with their event date and color indicator.
*   Each event tab contains four sub-tabs: Services, Raw Media, Notes, and Info.
*   The **Services** sub-tab displays the service categories (e.g., Photography, Videography) with details including Package tier, Hours Coverage, Min amount of photos, Number of Shooters, Roles Needed for This Event, Service Note, and Assigned Contractors.
*   The **Raw Media** sub-tab provides access to raw media files associated with the event.
*   The **Notes** sub-tab displays public notes as cards, each showing the event type label, note title, note content preview, and timestamp.
*   The **Info** sub-tab displays event-specific details: Event Info section with Start Date & Time, End Date & Time, and Primary Venue address.
#113
**FRD 3: Post Production Module Impact on Other Modules** > **4\. Functional Logic** > 4.4 Event Page Deliverables Widget and Info Bubble
~294 tok
### 4.4 Event Page Deliverables Widget and Info Bubble

*   The event page contains a deliverables widget that lists all contracted deliverables for that specific event.
*   The widget displays each deliverable with its name, status, and optionally an expected delivery timeline.
*   Deliverables appear in this widget at all times — even before the event has been completed. This allows the agency to view what needs to be delivered at any stage of the project.
*   An info bubble (ⓘ) is displayed next to the "Deliverables" heading in the widget.
*   The info bubble tooltip explains the synchronization rules between invoices, the event page widget, and the Post Production board. Specifically, it informs the user that items added manually to an invoice after the initial contract will not auto-sync, and provides guidance on timing for when deliverables appear on the Post Production board.
*   Agency users can add deliverables directly to the event page using a "+" button. These manually added deliverables follow the same timing rules: if added before the event date, they appear on the Post Production board after the event; if added after, they appear immediately.
#114
**FRD 3: Post Production Module Impact on Other Modules** > **4\. Functional Logic** > 4.5 Client Portal Status Mapping
~354 tok
### 4.5 Client Portal Status Mapping

*   The Client Portal displays a simplified version of the deliverable status using only two client-facing statuses: "Pending" and "Received."
*   The mapping between internal Post Production statuses and client-facing statuses is as follows:

**Internal Status (Post Production Board)**

**Client-Facing Status (Client Portal)**

Post-event Processing

Pending

Processing Complete

Pending

Assigned to Editor

Pending

In Progress

Pending

Edit Complete

Pending

Revision Needed

Pending

Ready for Client

Pending

Delivered

Received

*   The Client Portal never shows any internal workflow labels. Clients see only "Pending" or "Received."
*   **Future Enhancement (Phase 2):** In a future phase, agencies will be able to choose which statuses are visible to clients and add new custom statuses. In Phase 1, the two-status mapping (Pending/Received) is fixed as defined above.
*   When a deliverable reaches "Delivered" status and has a delivery link, the client sees the status as "Received" with an accessible link to their files.
*   **The client cannot change any status from the Client Portal.** The Client Portal is strictly read-only for status. If a client is dissatisfied with a delivered item, they must contact the agency (e.g., call or email the Project Manager), and the agency user changes the status on the Post Production board on behalf of the client.
#115
**FRD 3: Post Production Module Impact on Other Modules** > **4\. Functional Logic** > 4.6 Client Portal Deliverable Display
~192 tok
### 4.6 Client Portal Deliverable Display

*   The Client Portal displays a checklist-style view of all deliverables for the client's project, showing an aggregate view of items already received ("Received") and items still pending ("Pending").
*   Each deliverable displays: Deliverable Name, Client-Facing Status ("Pending" or "Received"), and Delivery Link (visible only when status is "Received").
*   The Client Portal does not display the Due Date. Clients do not have visibility into expected delivery dates.
*   All clients associated with a project have the same access to all deliverables in that project. Access is project-linked, not event-linked. If multiple clients are associated with the same project, all clients see all deliverables across all events.
#116
**FRD 3: Post Production Module Impact on Other Modules** > **4\. Functional Logic** > 4.7 Client Portal Email Notification Rules
~315 tok
### 4.7 Client Portal Email Notification Rules

*   The system sends email notifications to clients only for specific status transitions, not for all status changes. The email rules per status are as follows:

**Internal Status Change**

**Client Email Triggered?**

**Email Content**

→ Post-event Processing

No

—

→ Processing Complete

No

—

→ Assigned to Editor

No

—

→ In Progress

No

Client sees status update on portal but does NOT receive an email.

→ Edit Complete

No

—

→ Revision Needed

No

—

→ Ready for Client

No

—

→ Delivered (with link)

Yes

Email contains the delivery link and notifies the client that their deliverable is ready.

*   The only status transition that triggers a client email is when a deliverable moves to "Delivered" and a delivery link has been saved.
*   All other status changes update the client-facing status on the Client Portal (Pending or Received), but no email notification is sent.
*   **Email on Revision Status Change:** When an agency user (PM, Owner, or Admin) changes a deliverable's status from "Delivered" to "Revision Needed," the system sends an email notification to the assigned editor informing them that a revision has been requested. No email is sent to the client for this status change.
#117
**FRD 3: Post Production Module Impact on Other Modules** > **4\. Functional Logic** > 4.8 Revision Flow (Agency-Initiated)
~341 tok
### 4.8 Revision Flow (Agency-Initiated)

*   Clients cannot change deliverable statuses from the Client Portal. All status changes are performed by agency users.
*   When a client communicates dissatisfaction with a delivered item (via phone, email, or other external communication), the agency user (PM, Owner, or Admin) changes the deliverable's status from "Delivered" to any other status on the Post Production board. There are no status movement restrictions — the agency can move to any status in any direction.
*   The system sends an email notification to the assigned editor informing them that a revision has been requested.
*   **Client Delivery Column Behavior:** When a deliverable that was previously delivered (had a saved delivery link) is moved back to an earlier status, the "Client Delivery" column continues to display the previously saved delivery link. This column does not appear for deliverables that have never been delivered.
*   If the project had been moved to "Completed" status in the pipeline (because all deliverables were previously delivered), the system automatically moves it back to "Post Production."
*   The agency user can then re-review and re-deliver the item. When re-delivering, the Client Delivery popup opens with the previously saved link pre-populated. The agency user can keep the existing link or enter a new one.
#118
**FRD 3: Post Production Module Impact on Other Modules** > **4\. Functional Logic** > 4.9 Package and Invoice Synchronization Rules
~296 tok
### 4.9 Package and Invoice Synchronization Rules

*   Only line items explicitly marked as "Deliverable" during package creation and saved as presets contribute to the automatic deliverable population on the Post Production board.
*   Line items that are not marked as "Deliverable" (e.g., service hours, travel fees) are never populated on the Post Production board.
*   If a package is modified after the event date has passed and deliverables have already been auto-populated, the existing deliverables on the board remain unchanged. New line items added to the package are not automatically reflected.
*   To add new scope to post-production after the initial population, the agency user must use the "+ Add Jobs Manually" flow on the Post Production board.
*   Invoice-based deliverables (added through separate invoices post-contract) are not automatically synced to the Post Production board. They must be manually added.
*   The due date for auto-populated deliverables is sourced from the package configuration (number of days or months after event date). If the due date is changed on the Post Production board, it does not update the package configuration or vice versa.
#119
**FRD 3: Post Production Module Impact on Other Modules** > **4\. Functional Logic** > 4.10 Data Flow Summary
~396 tok
### 4.10 Data Flow Summary

*   **Project Management → Post Production:** Project name, event type, event date, service area, brand, project manager, and package line items flow into the Post Production board at event completion.
*   **Post Production → Project Management:** Pipeline stage transitions (to "Post Production" and "Completed") flow back to the Projects module based on deliverable statuses.
*   **Post Production → Client Portal:** Simplified status mapping, due dates, and delivery links flow to the client-facing portal. Email notification sent only on delivery.
*   **Client Portal → Post Production:** The Client Portal is read-only for status. All revision requests are communicated externally by the client and actioned by agency users on the Post Production board.
*   **Package Management → Post Production:** Deliverable types and due date configurations flow into auto-populated deliverables. This is a one-time data transfer at event completion and is not continuously synced.
*   **Event Page Widget ↔ Post Production:** Deliverables added on the event page follow timing rules to appear on the Post Production board. The info bubble communicates sync rules to agency users. The widget is always visible, even before the event completes.
*   **Post Production → Expense Module → COGX → QuickBooks:** When an editor payment is marked as paid, the payment amount flows as an expense entry (auto-categorized as "Editor Payment") from the Post Production board to the Expense module, then syncs to COGX, and from there is fetched into QuickBooks for accounting.
#120
**FRD 3: Post Production Module Impact on Other Modules** > **5\. Field Details & Validations**
~10 tok
## **5\. Field Details & Validations**
#121
**FRD 3: Post Production Module Impact on Other Modules** > **5\. Field Details & Validations** > 5.1 Projects Pipeline — Post Production Stage View
~84 tok
### 5.1 Projects Pipeline — Post Production Stage View

**Field Name**

**Field Type**

**Source**

**Editable**

Event Date

Date + Event Type Label

Project/Event data

No

Project

Text

Project name

No

Brand

Text/Icon

Brand configuration

No

Service Area

Text

Project data

No

Actions

Button ("View Details")

System

N/A
#122
**FRD 3: Post Production Module Impact on Other Modules** > **5\. Field Details & Validations** > 5.2 Client Portal — Deliverable Fields
~89 tok
### 5.2 Client Portal — Deliverable Fields

**Field Name**

**Field Type**

**Source**

**Client Editable**

Deliverable Name

Text

Post Production board

No

Status

Simplified text ("Pending" or "Received")

Mapped from internal status per Section 4.5

No

Delivery Link

Clickable URL

Client Delivery popup

No (visible only when status = "Received")
#123
**FRD 3: Post Production Module Impact on Other Modules** > **5\. Field Details & Validations** > 5.3 Event Page — Deliverables Widget Info Bubble
~76 tok
### 5.3 Event Page — Deliverables Widget Info Bubble

**Element**

**Type**

**Content**

Info Bubble (ⓘ)

Tooltip (hover/click)

Explains: (1) Invoice-added items don't auto-sync to widget or board, (2) Pre-event deliverables appear on board after event, (3) Post-event deliverables appear immediately.
#124
**FRD 3: Post Production Module Impact on Other Modules** > **6\. Success Message Handling**
~237 tok
## **6\. Success Message Handling**

**Action**

**Success Message**

**Post-Success Behavior**

Project auto-transitions to Post Production stage

No user-facing message (background)

Project appears under "Post Production" in pipeline.

Project auto-transitions to Completed

No user-facing message (background)

Project moves to "Completed" in pipeline. Only occurs when automation toggle is ON and all deliverables are Delivered.

Agency changes Delivered to Revision Needed

No user-facing success message

Deliverable moves to selected status. Email notification sent to assigned editor.

Delivery link becomes visible to client

No explicit message on portal

Client receives email with delivery link. Client sees "Received" status with accessible link in portal.

Deliverable added via event page widget

"Deliverable added successfully."

Deliverable appears in widget immediately. Appears on Post Production board based on timing rules.
#125
**FRD 3: Post Production Module Impact on Other Modules** > **7\. Error Message Handling**
~124 tok
## **7\. Error Message Handling**

**Error Scenario**

**Error Message**

**Trigger Condition**

**Required Action**

Pipeline auto-transition fails

No user-facing error (logged in system)

System error during automatic pipeline stage change.

System retries. Admin can manually adjust pipeline stage.

Client portal fails to load deliverables

"Unable to load deliverables. Please try again later."

Network or service error when fetching deliverable data for client.

Client refreshes the page.
#126
**FRD 3: Post Production Module Impact on Other Modules** > **8\. Edge Cases**
~694 tok
## **8\. Edge Cases**

**Edge Case**

**Expected System Behavior**

Project has deliverables across multiple events, some delivered and some not

Project remains in "Post Production" stage until all deliverables across all events reach "Delivered" (if automation toggle is ON).

Agency changes Delivered to Revision Needed after project was "Completed"

Project automatically moves back from "Completed" to "Post Production." The deliverable moves to the selected status. Client Delivery column remains visible showing previously saved link.

Agency manually moves project to "Completed" before all deliverables are delivered

Allowed without any warning. Deliverables remain on the active Post Production board regardless of pipeline status.

Package line items are deleted after deliverables were auto-populated

The associated deliverable moves to the Archived section (per FRD 1 Section 4.8).

Client accesses portal while deliverable status is changing

The client sees the status ("Pending" or "Received") at the time of page load. The client must refresh to see changes.

Project has no deliverable line items in the package

No deliverables are auto-populated. The project may not automatically move to "Post Production" if no other trigger exists. It can still be moved manually.

Multiple clients on same project

All clients have the same access to all deliverables in the project. Access is project-linked, not event-linked. All clients see all deliverables across all events.

Deliverable status changes from earlier status to another earlier status

Client portal status remains "Pending." No email is sent to the client.

Client receives delivery email but link is broken

Client must contact the agency externally (phone/email). Agency changes status and re-delivers with corrected link.

Automation toggle is OFF and all deliverables reach Delivered

No automatic transition to Completed. Agency must manually move the project to Completed.

Automation toggle is ON and all deliverables reach Delivered

System automatically transitions project to Completed.

Completed project — deliverables on board

Deliverables remain on the active Post Production board. Pipeline status does not affect board visibility. Agency can continue working on deliverables.

Project has no deliverables

Project must be moved manually to "Completed." Auto-transition does not apply.

Agency user changes Delivered to any other status

No restrictions — agency can move to any status. Email notification sent to assigned editor. Pipeline rollback triggered if project was in Completed.

Client Delivery column for previously-delivered item moved back

Column remains visible showing saved link in any status the deliverable is moved to. Does not appear for items never delivered.
#127
**FRD 3: Post Production Module Impact on Other Modules** > **9\. Acceptance Criteria**
~571 tok
## **9\. Acceptance Criteria**

*   Projects automatically transition to "Post Production" pipeline stage when any deliverable (auto-populated or manually created) becomes active on the board after the event date.
*   Auto-transition to "Completed" is controlled by the "Post Production Deliverables Status" automation toggle. If ON, project moves to Completed when all deliverables are Delivered. If OFF, agency must move manually.
*   Any regression from Delivered to an earlier status triggers automatic pipeline rollback from Completed to Post Production, regardless of toggle setting.
*   If agency manually moves project to Completed with undelivered items, a warning popup is displayed.
*   If project has no deliverables, it must be moved to Completed manually.
*   Completed projects' deliverables do not appear on the active Post Production board. Agency must move project back to Post Production before adding new deliverables.
*   Client Portal displays two statuses only: "Pending" (all non-delivered statuses) and "Received" (Delivered). No internal workflow labels are shown.
*   Client Portal does not display Due Date.
*   All clients on a project have equal access to all deliverables (project-linked, not event-linked).
*   Client Portal is strictly read-only for status. Clients cannot change any status.
*   Client email notifications are sent ONLY when a deliverable reaches "Delivered" status with a delivery link. No emails for any other status changes.
*   When an agency user changes Delivered to any other status, an email is sent to the assigned editor. No status movement restrictions exist for agency users.
*   Client Delivery column remains visible for previously-delivered items in any status they are moved to.
*   Package modifications after auto-population do not retroactively alter existing deliverables on the board.
*   Delivery links saved through the Client Delivery popup are visible to clients in the Client Portal as "Received" status.
*   Project detail pages correctly display event tabs with Services, Raw Media, Notes, and Info sub-tabs.
*   Event page deliverables widget includes an info bubble (ⓘ) that explains synchronization rules.
*   Event page deliverables widget is visible at all times, even before the event has completed.
#128
**FRD 3: Post Production Module Impact on Other Modules** > **10\. Manual Test Cases**
~11 tok
## **10\. Manual Test Cases**

Test cases:
#129
**FRD 3: Post Production Module Impact on Other Modules** > **11\. Dependencies**
~217 tok
## **11\. Dependencies**

**Module/System**

**Dependency Type**

**Impact if Unavailable**

Project Management

Bidirectional

Pipeline stage transitions and project detail views fail.

Client Portal

Integration

Clients cannot see deliverable statuses or delivery links.

Package Management

Data (one-time)

Auto-population of deliverables fails. Deliverable type dropdown in manual creation may be incomplete.

Invoice Management

Data

Invoice-based deliverables cannot be cross-referenced (manual add still works).

Email/Notification Service

Service

Notifications for client delivery, client rejection, and pipeline changes cannot be sent.

Expense Module / COGX / QuickBooks

Integration

Editor payment expense entries cannot flow from Post Production to accounting systems. Payments are still tracked on the board but not reflected in financial systems.
#130
**FRD 3: Post Production Module Impact on Other Modules** > **12\. References**
~10 tok
## **12\. References**

*   Figma Link:
#131
(intro)
~12 tok
# 

4\. Supervising Editor Post Production Access
#132
**FRD 4: Supervising Editor Post Production Access**
~51 tok
# **FRD 4: Supervising Editor Post Production Access**

**Module Name:** Post Production — Supervising Editor Access **Version:** 1.2 **Created Date:** February 12, 2026 **Last Updated:** February 13, 2026
#133
**FRD 4: Supervising Editor Post Production Access** > **1\. Module Overview**
~320 tok
## **1\. Module Overview**

**Module Name:** Post Production — Supervising Editor Access

**Purpose:** This sub-module defines the Post Production board experience for the Supervising Editor role. Supervising Editors have broader access than Junior Editors — they can view all deliverables across all events with deliverables whose event date has passed, assign editors (including themselves), change statuses to any stage except "Delivered," deliver to clients, access chat, and view project details in a read-only capacity. However, they cannot create deliverables, manage editor payments, archive items, or delete items.

**Business Goals:**

*   Empower senior editors to oversee the full post-production pipeline and self-assign work when needed.
*   Enable workflow coordination by allowing supervisors to assign and reassign editors across deliverables.
*   Allow supervisors to advance deliverables through all editing stages up to "Ready for Client," enabling them to signal that work is ready for agency review.
*   Maintain operational boundaries by restricting client-facing delivery actions and financial operations to agency users only.
*   Provide read-only project context to supervisors so they can make informed editing decisions without modifying project data.
#134
**FRD 4: Supervising Editor Post Production Access** > **2\. User Roles & Permissions**
~272 tok
## **2\. User Roles & Permissions**

**Permission**

**Supervising Editor**

Access Post Production module

✓

View all deliverables (all completed events)

✓

See all 8 status tabs

✓

Add Deliverable

✗ (button hidden)

Assign / reassign editors

✓

Self-assign as editor

✓

Change status

Assigned to Editor → In Progress → Edit Complete → Revision Needed → Ready for Client

Edit Internal Review Link

✓

Access chat (all projects)

✓

Deliver to client

✓ (visible in Edit Complete, Revision Needed, Ready for Client)

Archive items

✗

Delete items

✗

Mark editor as paid

✗ (read-only: "Paid" / "Not Paid" text. If editor is paid, editor column is read-only with tooltip.)

Three-dot Actions menu

✗ (not visible)

Bulk actions: Status, Priority, Editors, Due Date, Media Storage Location

✓

Bulk action: Archive

✗

Bulk action: Delete

✗

Column sorting, resize, and reorder

✓

View Projects page

✓ (read-only, post-production stages only)

Access Filters and Search

✓

Default landing page after login

Post Production

Sidebar navigation

Projects and Post Production only
#135
**FRD 4: Supervising Editor Post Production Access** > **3\. User Flow**
~780 tok
## **3\. User Flow**

3.1 The Supervising Editor logs into the Pixally platform. The system redirects them to the Post Production module as their default landing page.

3.2 The left sidebar navigation displays only two menu items: "Projects" and "Post Production." No other modules (Dashboard, Calendar, Clients & Contractors, Templates, Tools, Finances, Automations, Reports, Settings) are visible to the Supervising Editor.

3.3 The system loads the Post Production board titled "Post Production" displaying all deliverables across all events with deliverables whose event date has passed, grouped by status stage sections.

3.4 The board displays all 8 status tabs at the top: Post-event Processing, Processing Complete, Assigned to Editor, In Progress, Edit Complete, Revision Needed, Ready For Client, and Delivered. By default, all tabs appear in a gray/neutral state with no highlighting. Clicking a tab scrolls the page to the corresponding stage section and highlights that tab with the specific color of that status. Only one tab is highlighted at a time. Clicking another tab removes the previous highlight.

3.5 The Supervising Editor views all deliverables in all stages, regardless of editor assignment, providing full visibility into the post-production pipeline.

3.6 The Supervising Editor clicks the status dropdown on a deliverable and changes the status. The permitted status transitions allow changing to any status from "Assigned to Editor" through "Ready for Client."

3.7 If the deliverable is in "Assigned to Editor" status, the dropdown shows: In Progress, Edit Complete, Revision Needed, and Ready for Client.

3.8 If the deliverable is in "In Progress" status, the dropdown shows: Assigned to Editor, Edit Complete, Revision Needed, and Ready for Client.

3.9 If the deliverable is in "Edit Complete" status, the dropdown shows: Assigned to Editor, In Progress, Revision Needed, and Ready for Client.

3.10 If the deliverable is in "Revision Needed" status, the dropdown shows: Assigned to Editor, In Progress, Edit Complete, and Ready for Client.

3.11 If the deliverable is in "Post-event Processing," "Processing Complete," "Ready for Client," or "Delivered" status, the Supervising Editor cannot change its status and no editable dropdown options are shown.

3.12 The Supervising Editor clicks the Editor dropdown on an unassigned deliverable and selects a Junior Editor or themselves from the list.

3.13 The system assigns the selected editor and updates the Editor column with the editor's avatar and initials.

3.14 The "+ Add Deliverable" button is not visible to the Supervising Editor. They cannot create deliverables manually.

3.15 The system opens the "Add deliverable" popup with an informational banner at the top displaying: "If the associated event has already passed, this deliverable will appear on the Post Production board immediately. If it has not yet passed, it will appear following the event." The Supervising Editor follows the same manual job creation flow as agency users (select project, select event, select deliverable type, and optionally select a due date).
#136
**FRD 4: Supervising Editor Post Production Access** > **3\. User Flow**
~672 tok
3.16 The Supervising Editor clicks the "Create Deliverable" button. If any required field is empty, the system displays inline error messages next to each empty field. If all fields are valid, the deliverable is created.

3.17 The Supervising Editor clicks the chat icon on any deliverable row to open the chat panel, where they can view all messages (displayed newest first) and send new messages with rich text formatting, @mentions, and image attachments (up to 15MB per image).

3.18 The Supervising Editor clicks on the Internal Review Link cell for any deliverable and adds or edits the URL/text directly on the board.

3.19 The Supervising Editor views the "Editor Paid" column which displays "Paid" or "Not Paid" as read-only text without a checkbox or edit icon. If the editor is paid, the editor assignment column for that deliverable is locked (no dropdown) with a hover tooltip: "You can't change the editor as it is already paid. If you want to change editor ask PM, admin or agency owner."

3.20 The Supervising Editor can use the "Deliver to Client" button in the Actions column for deliverables in Edit Complete, Revision Needed, and Ready for Client stages to deliver items to clients.

3.21 The Supervising Editor does not see a three-dot (⋮) menu in any deliverable row.

3.22 The Supervising Editor selects multiple deliverables using checkboxes and the system displays the bulk action bar with options: Status, Priority, Editors, Due Date, and Media Storage Location.

3.23 The bulk action bar does not include Archive or Delete options for the Supervising Editor.

3.24 The Supervising Editor clicks on "Projects" in the left sidebar to navigate to the Projects page.

3.25 The Supervising Editor navigates to the "Projects" page from the sidebar. The page heading displays "Projects." No pipeline bar is shown. The page displays a flat event listing of events with deliverables whose event date has passed.

3.26 The Supervising Editor can click on "Post Production," "Completed," and any custom post-production pipeline stages to view projects in those stages.

3.27 The Supervising Editor clicks "View Details" on a project to open the project detail page in read-only mode.

3.28 On the project detail page, the system displays only the event tab for the specific event the Supervising Editor clicked on, not other events within the same project that have not yet occurred.

3.29 The project detail page displays four sub-tabs: Services, Raw Media, Notes, and Info, all in read-only mode.

3.30 The Supervising Editor uses the search bar and filter panel on the Post Production board, which provides filter options: Event Types, Brands, Date, and Services Type.
#137
**FRD 4: Supervising Editor Post Production Access** > **4\. Functional Logic**
~7 tok
## **4\. Functional Logic**
#138
**FRD 4: Supervising Editor Post Production Access** > **4\. Functional Logic** > 4.1 Board Display and Scope
~127 tok
### 4.1 Board Display and Scope

*   The Supervising Editor's board is titled "Post Production" (without a deliverable count).
*   The Supervising Editor sees all deliverables regardless of editor assignment, providing full pipeline oversight.
*   All 8 status stages are visible and displayed with their counts, collapsible headers, and stage indicators.
*   The "Archives" tab is not displayed in the Supervising Editor's navigation bar.
*   The board supports infinite scrolling within each stage section.
#139
**FRD 4: Supervising Editor Post Production Access** > **4\. Functional Logic** > 4.2 Default Landing and Sidebar Navigation
~180 tok
### 4.2 Default Landing and Sidebar Navigation

*   When the Supervising Editor logs into the platform, the system redirects them to the Post Production module as their default landing page. They do not see a dashboard or any other module first.
*   The left sidebar navigation displays only two menu items: "Projects" and "Post Production."
*   All other sidebar items visible to agency users (Dashboard, Calendar, Clients & Contractors, Templates, Tools, Finances, Automations, Reports, Settings) are hidden from the Supervising Editor.
*   If the Supervising Editor attempts to navigate directly to a URL for any hidden module (e.g., Dashboard, Calendar), the system redirects them to the Post Production landing page.
#140
**FRD 4: Supervising Editor Post Production Access** > **4\. Functional Logic** > 4.3 Status Change Permissions
~263 tok
### 4.3 Status Change Permissions

*   The Supervising Editor can change the status of deliverables in any direction (forward or backward) to any status except "Delivered."
*   The Supervising Editor has the same status access as a Project Manager, with the sole restriction being that they cannot set a deliverable's status to "Delivered." However, the Supervising Editor CAN use the "Deliver to Client" button to deliver items to clients.
*   The Supervising Editor CAN change the status of deliverables in "Post-event Processing," "Processing Complete," "Ready for Client," and all other stages — the only locked stage is "Delivered" (cannot change FROM Delivered, and cannot set TO Delivered). Status can be moved in any direction within the permitted range.
*   **Internal Review Link Dependency:** Moving a deliverable to "Edit Complete" or beyond requires the Internal Review Link to be present. If missing, the system blocks with inline error: "Please add an internal review link before moving to this status." Backward moves are unrestricted.
#141
**FRD 4: Supervising Editor Post Production Access** > **4\. Functional Logic** > 4.4 Editor Assignment and Self-Assignment
~308 tok
### 4.4 Editor Assignment and Self-Assignment

*   The Supervising Editor can assign any editor (including Junior Editors and themselves) to any unassigned deliverable.
*   The Supervising Editor can reassign deliverables from one editor to another, including moving them to themselves.
*   When a Supervising Editor assigns themselves, their avatar and initials appear in the Editor column.
*   Self-assignment is intended for scenarios where a Junior Editor is not available and the Supervising Editor needs to take on the editing work directly.
*   Editor assignment by the Supervising Editor triggers the same email notifications as when an agency user makes the assignment: first email on assignment, second email when status changes to "Assigned to Editor."
*   Editor seat limits from the agency's subscription are enforced for the Supervising Editor's assignments.
*   **Onboarding Pending Editors:** Editors who have been invited but have not yet completed onboarding appear in the Supervising Editor's assignment dropdown (both single and bulk) with an "Onboarding Pending" icon and hover tooltip. They can be assigned normally. The onboarding pending indicator displays next to their avatar on the board after assignment.
#142
**FRD 4: Supervising Editor Post Production Access** > **4\. Functional Logic** > 4.5 Manual Job Creation
~228 tok
### 4.5 Manual Job Creation

*   The "+ Add Deliverable" button is not visible to the Supervising Editor. They cannot create deliverables manually.
*   The manual job creation flow is identical to the agency user flow. The popup displays an informational banner: "If the associated event has already passed, this deliverable will appear on the Post Production board immediately. If it has not yet passed, it will appear following the event." Fields: select project, select event, select deliverable type (including custom deliverable option), and optionally select a due date via a calendar picker (same validation rules as FRD 1 Section 4.4).
*   The "Create Deliverable" button is always enabled. Clicking it with empty required fields triggers inline error messages on each empty field.
*   Custom deliverables created by the Supervising Editor follow the same one-time-use rule and are not saved as presets.
#143
**FRD 4: Supervising Editor Post Production Access** > **4\. Functional Logic** > 4.6 Chat Access
~194 tok
### 4.6 Chat Access

*   The Supervising Editor can access chat on all deliverables, not just the ones assigned to them.
*   Chat is strictly internal and never visible to clients.
*   Messages are displayed in reverse chronological order (newest first). Unread messages are highlighted with a light background.
*   Chat functionality is identical to agency users: rich text editor, @mentions, file attachments (up to 15MB per file, all file types supported), reply and delete actions (no forward).
*   **Delete permissions:** Agency Owner and Admin can delete any message. The Supervising Editor can delete only their own messages.
*   Opening the chat panel marks all unread messages as read immediately.
*   Unread message counts are personalized for the Supervising Editor.
#144
**FRD 4: Supervising Editor Post Production Access** > **4\. Functional Logic** > 4.7 Editor Payment (Read-Only) and Delivery Features
~263 tok
### 4.7 Editor Payment (Read-Only) and Delivery Features

*   The "Editor Paid" column displays "Paid" or "Not Paid" as plain text for the Supervising Editor. There is no checkbox, no edit (pencil) icon, and no ability to modify payment status.
*   **Paid Editor — Locked Editor Column:** If an editor has been marked as paid on a deliverable, the Supervising Editor sees that deliverable's editor column as read-only (no dropdown). On hover, a tooltip displays: "You can't change the editor as it is already paid. If you want to change editor ask PM, admin or agency owner."
*   The **"Deliver to Client" button IS displayed** for the Supervising Editor in the Actions column for deliverables in Edit Complete, Revision Needed, and Ready for Client stages. The Supervising Editor can save delivery links and trigger client email notifications, identical to agency users.
*   The three-dot (⋮) actions menu is not visible to the Supervising Editor on any deliverable row.
*   The "+ Add Deliverable" button is not displayed for the Supervising Editor.
#145
**FRD 4: Supervising Editor Post Production Access** > **4\. Functional Logic** > 4.8 Bulk Actions
~325 tok
### 4.8 Bulk Actions

*   When the Supervising Editor selects deliverables using checkboxes, the bulk action bar appears with: Status, Priority, Editors, Due Date, and Media Storage Location.
*   Archive and Delete options are not included in the Supervising Editor's bulk action bar.
*   Bulk status changes are limited to the same permitted range (all statuses except Delivered). Bulk status moves to "Edit Complete" or beyond skip deliverables missing the Internal Review Link (partial success, toast reports outcome).
*   **Partial Success Behavior:** All bulk actions follow the partial success pattern (same as FRD 2 Section 4.13). Deliverables that pass validation are updated, those that fail are skipped, and a toast reports the outcome.
*   **Bulk Editor Assignment — Brand Filtering:** Same as FRD 2 Section 4.13 — editor list shows only editors common to all selected brands (intersection). "No editors found" if no intersection. Onboarding-pending editors who match the brand intersection are included with the "Onboarding Pending" icon.
*   **Bulk Editor Assignment — Paid Editor Handling:** Same as FRD 2 Section 4.13 — confirmation popup showing count of paid deliverables. If confirmed, all updated (including paid), payment resets, expense entries retained. Toast reports outcome.
#146
**FRD 4: Supervising Editor Post Production Access** > **4\. Functional Logic** > 4.9 Filters and Search
~244 tok
### 4.9 Filters and Search

*   The Supervising Editor has access to the filter panel with the following options:
    *   **Event Types** (dropdown): Wedding, Corporate, Real Estate, Others. Shows "All Events" by default.
    *   **Brands** (dropdown): All agency brands. Shows "All Brand" by default.
    *   **Due Date** (single date picker): Filters deliverables by exact due date match. Includes a "To be Determined" toggle — when enabled, shows only deliverables with no due date defined. There is no Event Date filter.
    *   **Service Types** (checkboxes): Photography, Videography, Content Creation.
*   The search bar is available and functions identically to the agency user search, filtering across project names, client names, and deliverable types.
*   Applied filters are saved permanently per user in their preferences. Filters persist across page refreshes, module navigation, and login sessions until the user explicitly clears them using the reset button.
#147
**FRD 4: Supervising Editor Post Production Access** > **4\. Functional Logic** > 4.10 Column Customization and Sorting
~50 tok
### 4.10 Column Customization and Sorting

*   The Supervising Editor can resize, reorder, and sort columns on the board.
*   Column and sort preferences are saved per user and persist across sessions.
#148
**FRD 4: Supervising Editor Post Production Access** > **4\. Functional Logic** > 4.11 Questionnaire Access
~120 tok
### 4.11 Questionnaire Access

*   Questionnaire access is identical to agency users (FRD 2 Section 4.11). Clicking "View" opens a popup listing all contractors for the event with name, services, and "View Questionnaire" button. Submitted questionnaires open in a new browser tab as a full-page read-only view. Unsubmitted show disabled button with hover: "Questionnaire not yet submitted by this contractor." If no contractors exist for the event, the "View" button is disabled.
#149
**FRD 4: Supervising Editor Post Production Access** > **4\. Functional Logic** > 4.12 Projects Page Access
~393 tok
### 4.12 Projects Page Access

*   The Supervising Editor can navigate to the "Projects" page from the left sidebar. The page heading displays "Projects" (not "Project Management").
*   **No Pipeline Bar:** The horizontal pipeline stage bar is completely hidden for the Supervising Editor. They do not see any pipeline stages.
*   **Event Listing:** Instead of project cards or pipeline-filtered lists, the Supervising Editor sees a flat event listing showing any event that (a) has a deliverable attached and (b) whose event date has already passed — regardless of the project's pipeline stage.
*   A static info banner is displayed at the top of the event listing page: "This page displays all events with deliverables whose event date has already passed. Events without deliverables or with future dates will not appear here."
*   Clicking an event navigates to the project detail page, opening the clicked event tab by default. The Supervising Editor can switch between all event tabs within the project (they see all events, not just the clicked one).
*   **Project Detail Page (Read-Only):** The Supervising Editor sees two types of tabs:
    *   **Overview tab:** Displays only the Notes section. All other overview content is hidden.
    *   **Event tabs:** Each event tab (e.g., Rehearsal Dinner, Wedding) displays four read-only sub-tabs: Services, Raw Media, Notes, and Info.
*   The Supervising Editor cannot edit any data on the project detail page. No payment or contractor rate data is visible.
*   The Archived stage is not shown to the Supervising Editor.
#150
**FRD 4: Supervising Editor Post Production Access** > **5\. Field Details & Validations**
~10 tok
## **5\. Field Details & Validations**
#151
**FRD 4: Supervising Editor Post Production Access** > **5\. Field Details & Validations** > 5.1 Supervising Editor Board Columns
~404 tok
### 5.1 Supervising Editor Board Columns

**Field Name**

**Visibility**

**Editable**

**Notes**

Project Name

✓

No

Clickable link to project detail (read-only). Sortable.

Deliverable Type

✓

No

Read-only display of deliverable type. Sortable.

Editor

✓

Yes

Can assign/reassign including self-assignment. Sortable.

Chat

✓

Yes (send messages)

Full chat access on all deliverables. 15MB file limit (all types). Reply and delete only. Newest first.

Status

✓

Limited

All statuses except Delivered — any direction. Internal Review Link required for Edit Complete+. Sortable.

Priority

✓

Via bulk action

Standard (green), High (red). Sortable.

Event Date

✓

No

Read-only. Sortable.

Due Date

✓

Via bulk action

Read-only inline. Editable via bulk action bar. Sortable.

Service Area

✓

No

Read-only. Sortable.

Brand

✓

No

Read-only. Sortable.

Media Storage Location

✓

Via bulk action

Read-only inline. Editable via bulk action bar. Removable at any stage. Sortable.

Editor Paid

✓

No

Read-only "Paid" or "Not Paid" text. No checkbox. No pencil icon. If paid, editor column is locked with tooltip.

Project Manager

✓

No

Read-only. Hover shows tooltip. Sortable.

Internal Review Link

✓

Yes

Can add/edit directly on board. Sortable.

Questionnaire

✓

Read-only (View button)

Popup with contractor list, View Questionnaire per contractor.

Deliver to Client

✓

Yes

Visible in Edit Complete, Revision Needed, Ready for Client. Opens delivery popup.

Actions

Limited

N/A

Deliver to Client button visible (Edit Complete, Revision Needed, Ready for Client). No three-dot menu.
#152
**FRD 4: Supervising Editor Post Production Access** > **6\. Success Message Handling**
~173 tok
## **6\. Success Message Handling**

**Action**

**Success Message**

**Post-Success Behavior**

Status changed

No explicit toast

Deliverable moves to new stage. Counts update.

Editor assigned

"Editor assigned successfully."

Editor column updates. Email notifications sent to assigned editor (assignment email + ready-for-work email on status change).

Manual job created

"Deliverable created successfully."

Popup closes. New deliverable appears in Post-event Processing stage.

Chat message sent

No explicit toast

Message appears at top of chat thread (newest first). Notifications sent per tagging rules.

Internal review link saved

No explicit toast

Link displays in the cell.
#153
**FRD 4: Supervising Editor Post Production Access** > **7\. Error Message Handling**
~403 tok
## **7\. Error Message Handling**

**Error Scenario**

**Error Message**

**Trigger Condition**

**Required Action**

Editor seat limit reached

"Editor limit reached — Upgrade subscription."

Supervising Editor tries to assign when all seats are used.

Contact agency admin to upgrade subscription.

Invalid status change attempted

Status option not shown in dropdown

Supervising Editor tries to set status outside permitted range (prevented at UI level).

No action needed — restricted options are not displayed.

Manual job creation — missing project

"Please select a project to continue."

Clicks "Create Deliverable" without selecting a project.

Select a project from the dropdown.

Manual job creation — missing event

"Please select an event to continue."

Clicks "Create Deliverable" without selecting an event.

Select an event from the dropdown.

Manual job creation — missing deliverable type

"Please select a deliverable type."

Clicks "Create Deliverable" without selecting a deliverable type.

Select or enter a deliverable type.

Manual job creation — custom name empty

"Please enter a name for the custom deliverable."

Selects Custom Deliverable but leaves name field blank.

Enter a custom deliverable name.

Chat image exceeds 15MB

"Image size exceeds the 15MB limit. Please upload a smaller image."

Supervising Editor attempts to attach an image larger than 15MB.

Reduce image size or select a different image.

Network failure

"Unable to complete the action. Please check your connection and try again."

Network error during any operation.

Retry after connectivity is restored.
#154
**FRD 4: Supervising Editor Post Production Access** > **8\. Edge Cases**
~447 tok
## **8\. Edge Cases**

**Edge Case**

**Expected System Behavior**

Supervising Editor assigns themselves and then changes status to "Ready for Client"

Allowed. "Ready for Client" is within the permitted range.

Supervising Editor tries to change status from "Ready for Client" to "Delivered"

Not allowed. "Delivered" is not in the dropdown. However, the Supervising Editor can use the "Deliver to Client" button to deliver the item to the client.

Supervising Editor is the only editor and is at the seat limit

They can still reassign deliverables between themselves (no net new seat usage).

A deliverable in "Revision Needed" status

The Supervising Editor can change it to "Assigned to Editor," "In Progress," "Edit Complete," or "Ready for Client."

Supervising Editor tries to access a project in "Planning" stage via direct URL

The system displays the project page in read-only mode. No pipeline bar is shown.

Supervising Editor clicks on a project with multiple events

Only the event that was clicked from the list is shown. Other events are hidden.

All deliverables on the board belong to other editors

The Supervising Editor can still view all of them, chat on them, and reassign them.

Supervising Editor creates a manual job and assigns it to a Junior Editor

The flow works identically to agency user creation. The deliverable appears on both the Supervising Editor's board and the Junior Editor's assigned tasks.

Deliverable has no editor assigned and is in "Post-event Processing"

The Supervising Editor cannot change the status (Post-event Processing is outside their permitted range). They can assign an editor.

Supervising Editor navigates directly to a URL for Dashboard or Calendar

Access denied. The system redirects to the Post Production landing page.
#155
**FRD 4: Supervising Editor Post Production Access** > **9\. Acceptance Criteria**
~538 tok
## **9\. Acceptance Criteria**

*   The Supervising Editor board displays "Post Production" (without count) with all deliverables across events with deliverables whose event date has passed.
*   The default landing page after login is Post Production.
*   The sidebar navigation shows only "Projects" and "Post Production" — no other modules are visible.
*   All 8 status tabs are visible. The "Archives" tab is not shown.
*   Status changes are permitted within the range: Assigned to Editor → In Progress → Edit Complete → Revision Needed → Ready for Client. The Supervising Editor cannot set "Post-event Processing," "Processing Complete," or "Delivered."
*   Editor assignment works correctly, including self-assignment.
*   "+ Add Deliverable" button is visible and functional, with "Create Deliverable" always enabled and inline error messages on click when fields are empty.
*   Chat is accessible on all deliverables with full messaging capabilities, newest-first ordering, unread highlight, and 15MB image attachment limit. Chat is never visible to clients.
*   "+ Add Deliverable" button is hidden for Supervising Editor.
*   Editor Paid displays as read-only "Paid" / "Not Paid" text. No payment access. If editor is paid, editor column is locked with tooltip: "You can't change the editor as it is already paid."
*   "Deliver to Client" button is visible for Edit Complete, Revision Needed, and Ready for Client stages. Supervisor can save delivery links and trigger client emails.
*   Three-dot actions menu is not visible.
*   Bulk actions include Status, Priority, Editors, Due Date, Media Storage Location but exclude Archive and Delete.
*   Projects page shows flat event listing (events with deliverables + date passed). No pipeline bar. Heading "Projects." Overview shows Notes only. All event tabs visible with sub-tabs.
*   Project detail page is read-only with Services, Raw Media, Notes, and Info tabs.
*   Only the clicked event tab is displayed on project detail, not unrelated future events.
*   Internal Review Link is editable by the Supervising Editor.
*   Priority dropdown offers two options: Standard (green), High (red)
#156
**FRD 4: Supervising Editor Post Production Access** > **10\. Manual Test Cases**
~11 tok
## **10\. Manual Test Cases**

Test cases:
#157
**FRD 4: Supervising Editor Post Production Access** > **11\. Dependencies**
~173 tok
## **11\. Dependencies**

**Module/System**

**Dependency Type**

**Impact if Unavailable**

Post Production Board (Agency)

Data

Supervisor sees the same data as agency users with role-based restrictions applied.

Project Management

Data (read-only)

Project detail pages and pipeline view cannot load.

User Management / Team Members

Data

Editor list for assignment cannot be populated.

Subscription Management

Service

Editor seat limits cannot be validated during assignment.

Email/Notification Service

Service

Assignment notifications cannot be sent.

Authentication / Role Management

Service

Sidebar restriction and landing page redirect depend on correct role identification.
#158
**FRD 4: Supervising Editor Post Production Access** > **12\. References**
~10 tok
## **12\. References**

*   Figma Link:
#159
(intro)
~11 tok
# 

5\. Junior Editor Post Production Access
#160
**FRD 5: Junior Editor Post Production Access**
~49 tok
# **FRD 5: Junior Editor Post Production Access**

**Module Name:** Post Production — Junior Editor Access **Version:** 1.2 **Created Date:** February 12, 2026 **Last Updated:** February 13, 2026
#161
**FRD 5: Junior Editor Post Production Access** > **1\. Module Overview**
~266 tok
## **1\. Module Overview**

**Module Name:** Post Production — Junior Editor Access

**Purpose:** This sub-module defines the Post Production board experience for the Junior Editor role. Junior Editors have the most restricted access — they can only view deliverables assigned to them, change status within a limited range, edit the internal review link, and access chat on their assigned deliverables. They cannot assign editors, create manual jobs, archive, delete, or perform any client-facing actions.

**Business Goals:**

*   Provide Junior Editors with a focused task-oriented view showing only their assigned work to minimize distraction and information overload.
*   Enable editors to update progress by changing status and adding internal review links, keeping the agency informed of editing milestones.
*   Restrict access to sensitive information such as payment details and client delivery workflows to protect business operations.
*   Allow editors to communicate with the agency team through integrated chat for revision feedback and coordination.
#162
**FRD 5: Junior Editor Post Production Access** > **2\. User Roles & Permissions**
~221 tok
## **2\. User Roles & Permissions**

**Permission**

**Junior Editor**

Access Post Production module

✓

View deliverables

Assigned to them only

Status tabs visible

Assigned, In Progress, Edit Complete, Revision Needed, Delivered (5 tabs)

Change status

Assigned → In Progress → Edit Complete only

Edit Internal Review Link

✓

Access chat

Assigned deliverables only

Add Deliverable

✗

Assign / reassign editors

✗

Deliver to client

✗ (button hidden)

Archive items

✗

Delete items

✗

Mark editor as paid

✗ (read-only: "Paid" / "Not Paid" text)

Three-dot Actions menu

✗ (not visible)

Bulk actions

✗

Column sorting, resize, and reorder

✓

View Projects page

✓ (read-only, assigned projects only, limited tabs)

Access Filters and Search

✓ (limited filters)

Default landing page after login

Post Production

Sidebar navigation

Projects and Post Production only
#163
**FRD 5: Junior Editor Post Production Access** > **3\. User Flow**
~738 tok
## **3\. User Flow**

3.1 The Junior Editor logs into the Pixally platform. The system redirects them to the Post Production module as their default landing page.

3.2 The left sidebar navigation displays only two menu items: "Projects" and "Post Production." No other modules (Dashboard, Calendar, Clients & Contractors, Templates, Tools, Finances, Automations, Reports, Settings) are visible to the Junior Editor.

3.3 The system loads the Post Production board titled "My Tasks (\[N\])" displaying only deliverables that have been assigned to this specific Junior Editor.

3.4 The board displays 5 status tabs at the top: Assigned, In Progress, Edit Complete, Revision Needed, and Delivered. By default, all tabs appear in a gray/neutral state with no highlighting. Clicking a tab scrolls the page to the corresponding stage section and highlights that tab with the specific color of that status. Only one tab is highlighted at a time. Clicking another tab removes the previous highlight.

3.5 The Junior Editor views their assigned deliverables grouped under the applicable status stage sections, with each section showing the count of their assigned items in that stage.

3.6 The Junior Editor clicks the status dropdown on a deliverable that is in "Assigned" status and changes it to "In Progress" to indicate they have started working.

3.7 The Junior Editor clicks the status dropdown on a deliverable in "In Progress" status and changes it to "Edit Complete" to indicate they have finished editing.

3.8 If the deliverable is in "Revision Needed" status (sent back by the agency after client feedback), the Junior Editor changes it to "In Progress" to restart work.

3.9 The Junior Editor clicks on the Internal Review Link cell for any of their assigned deliverables and adds or edits the URL/text directly on the board.

3.10 The Junior Editor clicks the chat icon on an assigned deliverable to open the chat panel and communicates with the project team about the deliverable. Messages are displayed newest first, with unread messages highlighted with a light background.

3.11 The Junior Editor views the "Payment Received" column which displays "Paid" or "Not Paid" as read-only text.

3.12 The Junior Editor does not see a "Deliver to Client" button, three-dot actions menu, "+ Add Deliverable" button, or bulk action bar on the board.

3.13 The Junior Editor clicks on "Projects" in the left sidebar to navigate to the Projects page.

3.14 The system displays only projects that have been assigned to this Junior Editor (i.e., projects where they are the assigned editor on at least one deliverable).

3.15 The Junior Editor clicks "View Details" on a project to open the project detail page in read-only mode.

3.16 On the project detail page, the system displays only the event tab for the specific event the Junior Editor clicked on.

3.17 The project detail page displays four read-only sub-tabs: Services, Raw Media, Notes, and Info.
#164
**FRD 5: Junior Editor Post Production Access** > **4\. Functional Logic**
~7 tok
## **4\. Functional Logic**
#165
**FRD 5: Junior Editor Post Production Access** > **4\. Functional Logic** > 4.1 Board Display and Scope
~286 tok
### 4.1 Board Display and Scope

*   The Junior Editor's board is titled "My Tasks (\[N\])" where N is the total count of deliverables assigned specifically to this Junior Editor.
*   The board displays only deliverables where this Junior Editor is the assigned editor. Deliverables assigned to other editors or unassigned deliverables are not visible.
*   The board displays 5 status tabs: Assigned (maps to "Assigned to Editor"), In Progress, Edit Complete, Revision Needed, and Delivered.
*   The "Post-event Processing" and "Processing Complete" stages are not displayed because deliverables in those stages have not yet been assigned to an editor.
*   The "Ready for Client" stage is not displayed because Junior Editors cannot set this status and it is an agency-internal review step.
*   The "Archives" tab is not displayed.
*   Each visible stage section shows the count of the Junior Editor's assigned deliverables in that stage.
*   The board supports infinite scrolling within each stage section.
*   The board does not auto-refresh. Users must manually reload the page or navigate away and back to see changes made by other users.
#166
**FRD 5: Junior Editor Post Production Access** > **4\. Functional Logic** > 4.2 Default Landing and Sidebar Navigation
~177 tok
### 4.2 Default Landing and Sidebar Navigation

*   When the Junior Editor logs into the platform, the system redirects them to the Post Production module as their default landing page. They do not see a dashboard or any other module first.
*   The left sidebar navigation displays only two menu items: "Projects" and "Post Production."
*   All other sidebar items visible to agency users (Dashboard, Calendar, Clients & Contractors, Templates, Tools, Finances, Automations, Reports, Settings) are hidden from the Junior Editor.
*   If the Junior Editor attempts to navigate directly to a URL for any hidden module (e.g., Dashboard, Calendar), the system redirects them to the Post Production landing page.
#167
**FRD 5: Junior Editor Post Production Access** > **4\. Functional Logic** > 4.3 Column Configuration for Junior Editor
~191 tok
### 4.3 Column Configuration for Junior Editor

*   The Junior Editor board displays the following columns: Checkbox (non-functional for bulk actions), Project Name, My Task (equivalent to "Deliverable Type" but labeled "My Task"), Deliverable Type, Chat, Status, Priority, Event Date, Due Date, Service Area, Media Storage Location, Payment Received (equivalent to "Editor Paid"), Project Manager, Internal Review Link, Questionnaire, and Actions.
*   The "My Task" column displays the deliverable type name, serving as the Junior Editor's task description.
*   The "Payment Received" column replaces "Editor Paid" and shows "Paid" or "Not Paid" as read-only text.
*   The "Editor" column is not displayed since the Junior Editor only sees their own assignments.
#168
**FRD 5: Junior Editor Post Production Access** > **4\. Functional Logic** > 4.4 Status Change Permissions
~346 tok
### 4.4 Status Change Permissions

*   The Junior Editor can change status within the range of "Assigned," "In Progress," and "Edit Complete" with full backward movement (any direction within this range).
*   When a deliverable is in "Assigned" status, the dropdown shows "In Progress" and "Edit Complete."
*   When a deliverable is in "In Progress" status, the dropdown shows "Assigned" and "Edit Complete."
*   When a deliverable is in "Edit Complete" status, the dropdown shows "Assigned" and "In Progress."
*   When a deliverable is in "Revision Needed" status, the dropdown shows "Assigned," "In Progress," and "Edit Complete" (to re-enter the editing workflow at any point).
*   When a deliverable is in "Delivered" status, the Junior Editor cannot change its status.
*   The Junior Editor cannot set status to "Revision Needed," "Ready for Client," or "Delivered."
*   **Skipping In Progress:** A deliverable may move from "Assigned" directly to "Edit Complete" with no "In Progress" record. This is an accepted workflow and by design.
*   **Internal Review Link Dependency:** Moving a deliverable to "Edit Complete" requires the Internal Review Link to be present. If missing, the system blocks the change with inline error: "Please add an internal review link before moving to this status." Moving backward (Edit Complete → In Progress → Assigned) does not require the link.
#169
**FRD 5: Junior Editor Post Production Access** > **4\. Functional Logic** > 4.5 Internal Review Link
~80 tok
### 4.5 Internal Review Link

*   The Junior Editor can add and edit the Internal Review Link on any of their assigned deliverables.
*   This is one of only two editable fields for the Junior Editor (the other being Status within the permitted range).
*   The field accepts free-form text/URL input directly on the board.
#170
**FRD 5: Junior Editor Post Production Access** > **4\. Functional Logic** > 4.6 Chat Access
~224 tok
### 4.6 Chat Access

*   The Junior Editor can access chat only on deliverables assigned to them.
*   Chat is strictly internal and never visible to clients.
*   Messages are displayed in reverse chronological order (newest first). Unread messages are highlighted with a light background.
*   Chat functionality is identical to other roles: rich text editor, @mentions, file attachments (up to 15MB per file, all file types supported), reply and delete actions (no forward).
*   The Junior Editor can delete only their own messages. Agency Owner and Admin can delete any message.
*   Opening the chat panel marks all unread messages as read immediately.
*   Unread message counts are personalized for the Junior Editor.
*   The Junior Editor receives email notifications when tagged via @mention and for all activity on their assigned deliverable's chat thread (as the primary assigned editor).
#171
**FRD 5: Junior Editor Post Production Access** > **4\. Functional Logic** > 4.7 Questionnaire Access
~120 tok
### 4.7 Questionnaire Access

*   Questionnaire access is identical to agency users (FRD 2 Section 4.11). Clicking "View" opens a popup listing all contractors for the event with name, services, and "View Questionnaire" button. Submitted questionnaires open in a new browser tab as a full-page read-only view. Unsubmitted show disabled button with hover: "Questionnaire not yet submitted by this contractor." If no contractors exist for the event, the "View" button is disabled.
#172
**FRD 5: Junior Editor Post Production Access** > **4\. Functional Logic** > 4.8 Read-Only and Hidden Elements
~273 tok
### 4.8 Read-Only and Hidden Elements

*   The "Payment Received" column displays "Paid" or "Not Paid" as plain text. There is no checkbox, edit icon, or ability to view payment amount details.
*   The "Deliver to Client" button is not displayed for any deliverable.
*   The "+ Add Deliverable" button is not displayed on the board for Junior Editors.
*   The bulk action bar appears when checkboxes are selected, with Status as the only available action (within the Junior Editor's permitted range: Assigned, In Progress, Edit Complete). No other bulk actions (Priority, Editors, Due Date, Media Storage Location, Archive, Delete, Deliver to Client) are available.
*   **Partial Success on Bulk Status:** When bulk-changing status to "Edit Complete," deliverables missing the Internal Review Link are skipped. Toast reports outcome (e.g., "Successfully updated 2/3 deliverables. 1 could not be updated because the internal review link was missing.").
*   Priority, Due Date, Media Storage Location, and all other fields not explicitly listed as editable are read-only for the Junior Editor.
#173
**FRD 5: Junior Editor Post Production Access** > **4\. Functional Logic** > 4.9 Filters and Search
~351 tok
### 4.9 Filters and Search

*   The Junior Editor has access to the filter panel with the following options:
    *   **Event Types** (dropdown): Wedding, Corporate, Real Estate, Others. Shows "All Events" by default.
    *   **Brands** (dropdown): All agency brands. Shows "All Brand" by default.
    *   **Due Date** (single date picker): Filters deliverables by exact due date match. Includes a "To be Determined" toggle — when enabled, shows only deliverables with no due date defined. There is no Event Date filter.
*   The Junior Editor does **not** have the Service Types filter.
*   There is no separate Status filter in the filter panel. The 5 status tabs at the top of the board (Assigned, In Progress, Edit Complete, Revision Needed, Delivered) serve as the status filter.
*   The search bar is available and filters across project names and deliverable types within the Junior Editor's assigned items only. If no results match, the system displays: "No results found. No items match your search. Try adjusting your keywords or clearing the search."
*   Filters operate only on the Junior Editor's assigned deliverables — they cannot reveal deliverables assigned to other editors.
*   Applied filters are saved permanently per user in their preferences. Filters persist across page refreshes, module navigation, and login sessions until the user explicitly clears them using the reset button.
#174
**FRD 5: Junior Editor Post Production Access** > **4\. Functional Logic** > 4.10 Column Customization and Sorting
~49 tok
### 4.10 Column Customization and Sorting

*   The Junior Editor can resize, reorder, and sort columns on the board.
*   Column and sort preferences are saved per user and persist across sessions.
#175
**FRD 5: Junior Editor Post Production Access** > **4\. Functional Logic** > 4.11 Projects Page Access
~323 tok
### 4.11 Projects Page Access

*   The Junior Editor can navigate to the "Projects" page from the left sidebar. The page heading displays "Projects" (not "Project Management").
*   **No Pipeline Bar:** The horizontal pipeline stage bar is completely hidden for the Junior Editor. They do not see any pipeline stages.
*   **Event Listing:** The Junior Editor sees a flat event listing showing only events that are assigned to them (where they have at least one assigned deliverable) and whose event date has already passed.
*   A static info banner is displayed at the top: "This page displays only the events assigned to you whose event date has already passed. Events not assigned to you or with future dates will not appear here."
*   Clicking an event navigates to the project detail page, deep-linking directly to that specific event tab. The Junior Editor sees only the event assigned to them — no other events are visible, and no tab switching is allowed.
*   **Project Detail Page (Read-Only):** The Junior Editor does NOT see the Overview tab. They see only the event tab for their assigned event with four read-only sub-tabs: Services, Raw Media, Notes, and Info.
*   The Junior Editor cannot edit any data on the project detail page. No payment or contractor rate data is visible.
#176
**FRD 5: Junior Editor Post Production Access** > **5\. Field Details & Validations**
~10 tok
## **5\. Field Details & Validations**
#177
**FRD 5: Junior Editor Post Production Access** > **5\. Field Details & Validations** > 5.1 Junior Editor Board Columns
~278 tok
### 5.1 Junior Editor Board Columns

**Field Name**

**Visibility**

**Editable**

**Notes**

Project Name

✓

No

Clickable link to project detail (read-only). Sortable.

My Task

✓

No

Displays deliverable type as task name. Sortable.

Deliverable Type

✓

No

Read-only. Sortable.

Chat

✓

Yes (send messages)

Only on assigned deliverables. 15MB image limit. Newest first.

Status

✓

Limited

Only: Assigned → In Progress → Edit Complete. Sortable.

Priority

✓

No

Read-only. Standard (green), High (red). Sortable.

Event Date

✓

No

Read-only. Sortable.

Due Date

✓

No

Read-only. Sortable.

Service Area

✓

No

Read-only. Sortable.

Media Storage Location

✓

No

Read-only. Sortable.

Payment Received

✓

No

Displays "Paid" or "Not Paid" as text.

Project Manager

✓

No

Read-only. Hover shows PM tooltip. Sortable.

Internal Review Link

✓

Yes

Can add/edit directly on board. Sortable.

Questionnaire

✓

Read-only (View button)

Opens contractor and client questionnaires in read-only view.

Actions

Limited

N/A

Only "View" for Questionnaire. No Deliver to Client. No three-dot menu.
#178
**FRD 5: Junior Editor Post Production Access** > **6\. Success Message Handling**
~92 tok
## **6\. Success Message Handling**

**Action**

**Success Message**

**Post-Success Behavior**

Status changed

No explicit toast

Deliverable moves to new stage. Counts update.

Chat message sent

No explicit toast

Message appears at top of thread (newest first). Notifications sent per rules.

Internal review link saved

No explicit toast

Link displays in cell.
#179
**FRD 5: Junior Editor Post Production Access** > **7\. Error Message Handling**
~215 tok
## **7\. Error Message Handling**

**Error Scenario**

**Error Message**

**Trigger Condition**

**Required Action**

Invalid status change attempted

Status option not shown in dropdown

Junior Editor tries to set status outside permitted range (prevented at UI level).

No action needed — restricted options are not displayed.

Network failure

"Unable to complete the action. Please check your connection and try again."

Network error during status change or chat.

Retry after connectivity is restored.

No assigned deliverables

Empty state message displayed

Junior Editor has no deliverables assigned to them.

Wait for agency to assign deliverables.

Chat image exceeds 15MB

"Image size exceeds the 15MB limit. Please upload a smaller image."

Junior Editor attempts to attach an image larger than 15MB.

Reduce image size or select a different image.
#180
**FRD 5: Junior Editor Post Production Access** > **8\. Edge Cases**
~378 tok
## **8\. Edge Cases**

**Edge Case**

**Expected System Behavior**

Junior Editor has no assigned deliverables

The board displays an empty state: "No tasks assigned yet. Your assigned tasks will appear here."

Junior Editor is unassigned from a deliverable while viewing it

On next refresh, the deliverable disappears from the Junior Editor's board.

Deliverable is moved to "Ready for Client" by agency while Junior Editor is on the board

The deliverable remains visible in the Junior Editor's view under the closest applicable status tab until the next refresh. The Junior Editor can see but not modify it.

Junior Editor tries to access a deliverable not assigned to them via direct URL

The system denies access and displays an access denied message.

Junior Editor changes status from "Assigned" to "Edit Complete" (skipping "In Progress")

Allowed. The dropdown includes both "In Progress" and "Edit Complete" when in "Assigned" status.

Deliverable is in "Delivered" status

The Junior Editor can see it in the "Delivered" tab but cannot change its status.

Junior Editor's assignment is changed from one deliverable to another

The old deliverable disappears from the board on next refresh, and the new one appears.

Agency deletes a deliverable that is assigned to the Junior Editor

The deliverable disappears from the Junior Editor's board on next refresh.

Junior Editor navigates directly to a URL for Dashboard or Calendar

Access denied. The system redirects to the Post Production landing page.
#181
**FRD 5: Junior Editor Post Production Access** > **9\. Acceptance Criteria**
~369 tok
## **9\. Acceptance Criteria**

*   The Junior Editor board displays "My Tasks (\[N\])" with only their assigned deliverables.
*   The default landing page after login is Post Production.
*   The sidebar navigation shows only "Projects" and "Post Production" — no other modules are visible.
*   Only 5 status tabs are visible: Assigned, In Progress, Edit Complete, Revision Needed, Delivered.
*   Status changes are restricted to: Assigned → In Progress → Edit Complete.
*   Deliverables in "Revision Needed" can be changed to "In Progress" or "Edit Complete."
*   Internal Review Link is editable.
*   Chat is accessible only on assigned deliverables with 15MB image attachment limit, newest-first ordering, and unread highlight. Chat is never visible to clients.
*   Questionnaire "View" button opens questionnaires from both contractors and clients.
*   "Payment Received" displays "Paid" or "Not Paid" as read-only text.
*   "Deliver to Client" button, three-dot menu, "+ Add Deliverable" button, and bulk action bar are not visible.
*   Projects page shows only projects with at least one deliverable assigned to this editor.
*   Project detail page is read-only with Services, Raw Media, Notes, and Info tabs.
*   Only the clicked event tab is shown; other events in the same project are hidden.
*   The "My Task" column correctly displays the deliverable type as the task name.
*   Priority displays as read-only with two possible values: Standard (green), High (red)
#182
**FRD 5: Junior Editor Post Production Access** > **10\. Manual Test Cases**
~11 tok
## **10\. Manual Test Cases**

Test cases:
#183
**FRD 5: Junior Editor Post Production Access** > **11\. Dependencies**
~145 tok
## **11\. Dependencies**

**Module/System**

**Dependency Type**

**Impact if Unavailable**

Post Production Board (Agency)

Data

Junior Editor's filtered view cannot be generated.

Project Management

Data (read-only)

Project detail pages cannot load.

Editor Assignment System

Data

Cannot determine which deliverables to display for the Junior Editor.

Email/Notification Service

Service

Chat notifications and assignment alerts cannot be sent.

Authentication / Role Management

Service

Sidebar restriction and landing page redirect depend on correct role identification.
#184
**FRD 5: Junior Editor Post Production Access** > **12\. References**
~10 tok
## **12\. References**

*   Figma Link:
#185
(intro)
~10 tok
# 

6\. Archive / Unarchive Functionality
#186
**Functional Requirements Document (FRD)**
~11 tok
# **Functional Requirements Document (FRD)**
#187
**FRD 6: Archive / Unarchive Functionality**
~48 tok
# **FRD 6: Archive / Unarchive Functionality**

**Module Name:** Post Production — Archive & Unarchive **Version:** 1.2 **Created Date:** February 12, 2026 **Last Updated:** February 13, 2026
#188
**FRD 6: Archive / Unarchive Functionality** > **1\. Module Overview**
~220 tok
## **1\. Module Overview**

**Module Name:** Post Production — Archive & Unarchive

**Purpose:** This sub-module covers the archive and unarchive functionality within the Post Production module. Archiving allows agency users to remove completed, cancelled, or inactive deliverables from the active board view without permanently deleting them. Unarchiving restores deliverables back to the active board. This functionality is restricted to agency-side roles only — editors cannot archive or unarchive.

**Business Goals:**

*   Keep the active Post Production board clean and focused on current work by allowing agencies to archive completed or inactive deliverables.
*   Preserve historical records of all deliverables for future reference, reporting, and audit purposes.
*   Provide a simple, reversible workflow to move deliverables in and out of the archive without data loss.
#189
**FRD 6: Archive / Unarchive Functionality** > **2\. User Roles & Permissions**
~89 tok
## **2\. User Roles & Permissions**

**Permission**

**Agency Owner**

**Admin**

**Project Manager**

**Supervisor Editor**

**Junior Editor**

Archive deliverables (single)

✓

✓

✓

✗

✗

Archive deliverables (bulk)

✓

✓

✓

✗

✗

View Archives tab

✓

✓

✓

✗

✗

Unarchive deliverables

✓

✓

✓

✗

✗

View archived deliverable details

✓

✓

✓

✗

✗
#190
**FRD 6: Archive / Unarchive Functionality** > **3\. User Flow**
~5 tok
## **3\. User Flow**
#191
**FRD 6: Archive / Unarchive Functionality** > **3\. User Flow** > Archiving a Single Deliverable
~214 tok
### Archiving a Single Deliverable

3.1 The agency user (Owner, Admin, or PM) clicks the three-dot (⋮) menu on any deliverable row on the Post Production board.

3.2 The system displays two options: "Archive" and "Delete" (Delete is visible only for Owner and Admin).

3.3 The user clicks "Archive."

3.3a The system displays a confirmation popup with the title "Archive Deliverable" and message: "Are you sure you want to archive this deliverable? It will be moved to the Archived section and removed from the active board. You can retrieve it later and it will return to its previous status." The user clicks "Archive" to proceed or "Cancel" to abort.

3.4 Upon confirmation, the system removes the deliverable from the active board view, moves it to the Archived list, changes its status to "Archives," and updates the stage count for the previous stage.
#192
**FRD 6: Archive / Unarchive Functionality** > **3\. User Flow** > Archiving Multiple Deliverables (Bulk)
~203 tok
### Archiving Multiple Deliverables (Bulk)

3.5 The agency user selects multiple deliverables using the row checkboxes within a stage section.

3.6 The system displays the bulk action bar with options including "Archive."

3.7 The user clicks "Archive" in the bulk action bar.

3.7a The system displays a confirmation popup with the title "Archive Deliverables" and message: "Are you sure you want to archive \[N\] deliverable(s)? They will be moved to the Archived section and removed from the active board. You can retrieve them later and they will return to their previous status." The user clicks "Archive" to proceed or "Cancel" to abort.

3.8 Upon confirmation, the system removes all selected deliverables from the active board, moves them to the Archived list, and updates the stage counts accordingly.
#193
**FRD 6: Archive / Unarchive Functionality** > **3\. User Flow** > Viewing Archived Deliverables
~179 tok
### Viewing Archived Deliverables

3.9 The agency user clicks the "Archives" tab in the top navigation bar of the Post Production board.

3.10 The system navigates to a separate Archived view page titled "Archived (\[count\])" with a back arrow (←) to return to the active board.

3.11 The Archived view displays all archived deliverables in a flat list (not grouped by stages) with columns: Project Name, Deliverable Type, Editor, Chat, Status (showing "Archives"), Priority, Event Date, Due Date, Service Area, Brand, Media Storage Location, Editor Paid, Project Manager, Internal Review Link, Questionnaire, and Actions.

3.12 The agency user reviews archived deliverables and locates the one they want to restore.
#194
**FRD 6: Archive / Unarchive Functionality** > **3\. User Flow** > Unarchiving a Deliverable
~247 tok
### Unarchiving a Deliverable

3.13 The agency user identifies the deliverable to restore in the Archived view.

3.14 The user clicks the three-dot (⋮) menu on the archived deliverable row.

3.15 The system displays the option to unarchive the deliverable.

3.15a The user clicks the unarchive option. The system displays a confirmation popup with the title "Retrieve Deliverable" and message: "Are you sure you want to retrieve this deliverable? It will be restored to the active board in its previous status." The user clicks "Retrieve" to proceed or "Cancel" to abort.

3.16 Upon confirmation, the system restores the deliverable to the active Post Production board in the same status stage it was in at the time of archiving, with all its previous data intact.

3.17 The system removes the deliverable from the Archived list and updates the archived count.

3.18 The user clicks the back arrow (←) to return to the active Post Production board and verifies the restored deliverable.
#195
**FRD 6: Archive / Unarchive Functionality** > **4\. Functional Logic**
~7 tok
## **4\. Functional Logic**
#196
**FRD 6: Archive / Unarchive Functionality** > **4\. Functional Logic** > 4.1 Archive Behavior
~6 tok
### 4.1 Archive Behavior
#197
**FRD 6: Archive / Unarchive Functionality** > **4\. Functional Logic** > 4.1 Archive Behavior
~800 tok
*   Deliverables can be archived from any status stage on the Post Production board. There is no restriction on which status a deliverable must be in before it can be archived.
*   Archiving is available through two mechanisms: the three-dot (⋮) row-level menu ("Archive" option) and the bulk action bar ("Archive" button when multiple deliverables are selected).
*   **Single Archive Confirmation:** Clicking "Archive" from the three-dot menu opens a confirmation popup — title: "Archive Deliverable", message: "Are you sure you want to archive this deliverable? It will be moved to the Archived section and removed from the active board. You can retrieve it later and it will return to its previous status." User clicks "Archive" to proceed or "Cancel" to abort.
*   **Bulk Archive Confirmation:** Clicking "Archive" from the bulk action bar opens a confirmation popup — title: "Archive Deliverables", message: "Are you sure you want to archive \[N\] deliverable(s)? They will be moved to the Archived section and removed from the active board. You can retrieve them later and they will return to their previous status." User clicks "Archive" to proceed or "Cancel" to abort.
*   **Single Delete Confirmation:** Clicking "Delete" from the three-dot menu opens a confirmation popup — title: "Delete Deliverable", message: "Are you sure you want to delete this deliverable? This action is permanent and cannot be undone. All associated data including chat history, delivery links will be permanently removed." If editor is NOT paid: buttons "Delete" | "Cancel." If editor IS paid: additional section appears — "Editor payment has been recorded. Choose how to handle the expense: **Keep Expense** — Deliverable is deleted. Expense entry stays in Pixally and QuickBooks. **Remove Expense** — Deliverable is deleted. Expense entry is deleted from Pixally and voided in QuickBooks." Buttons: "Keep Expense" | "Remove Expense" | "Cancel."
*   **Bulk Delete Confirmation:** Clicking "Delete" from the bulk action bar opens a confirmation popup — title: "Delete Deliverables", message: "Are you sure you want to delete \[N\] deliverable(s)? This action is permanent and cannot be undone. All associated data including chat history, delivery links will be permanently removed." If NONE have paid editors: buttons "Delete" | "Cancel." If SOME have paid editors: additional section — "\[Y\] deliverable(s) have editor payments already recorded. These deliverables will be skipped and will not be deleted." Buttons: "Continue" | "Cancel." After deletion, toast: "Successfully deleted \[X\] of \[N\] deliverable(s). \[Y\] could not be deleted because payment was already recorded."
*   When a deliverable is archived, it is immediately removed from the active Post Production board and moved to the Archived list.
*   The deliverable's status changes to "Archives" upon archiving.
*   All other data associated with the deliverable (editor assignment, media storage location, due date, internal review link, chat history, payment status, priority) is preserved in the archived state.
*   Priority values (Standard in green, High in red, or Urgent in orange) are preserved exactly as they were at the time of arch
#198
**FRD 6: Archive / Unarchive Functionality** > **4\. Functional Logic** > 4.1 Archive Behavior
~90 tok
iving.
*   The stage count for the stage from which the deliverable was archived decreases by one.
*   Archiving does not trigger any notifications to editors or clients.
*   Archived deliverables do not appear in search results or filter results on the active board.
*   Archived deliverables do not appear on the Junior Editor's or Supervisor Editor's board.
#199
**FRD 6: Archive / Unarchive Functionality** > **4\. Functional Logic** > 4.2 Archived View
~277 tok
### 4.2 Archived View

*   The "Archives" tab is displayed in the top navigation bar of the Post Production board, visible only to agency users (Owner, Admin, PM).
*   Clicking the "Archives" tab navigates to a separate page titled "Archived (\[N\])" where N is the total count of archived deliverables.
*   A back arrow (←) is displayed next to the title, allowing the user to return to the active Post Production board.
*   The Archived view displays all archived deliverables in a flat list format without stage grouping.
*   The Archived view supports the same column set as the active board, including: Project Name, Deliverable Type, Editor, Chat, Status (all showing "Archives"), Priority (Standard in green, High in red, or Urgent in orange), Event Date, Due Date, Service Area, Brand, Media Storage Location, Editor Paid, Project Manager, Internal Review Link, Questionnaire, and Actions.
*   The Archived view includes search and filter functionality that operates only on archived items.
*   The Archived view supports the same column resize, reorder, and sorting capabilities as the active board.
#200
**FRD 6: Archive / Unarchive Functionality** > **4\. Functional Logic** > 4.3 Unarchive Behavior
~367 tok
### 4.3 Unarchive Behavior

*   Agency users can unarchive deliverables from the Archived view to restore them to the active Post Production board.
*   **Single Retrieve Confirmation:** Clicking the unarchive option from the three-dot menu opens a confirmation popup — title: "Retrieve Deliverable", message: "Are you sure you want to retrieve this deliverable? It will be restored to the active board in its previous status." User clicks "Retrieve" to proceed or "Cancel" to abort.
*   **Bulk Retrieve Confirmation:** Clicking the unarchive option from the bulk action bar opens a confirmation popup — title: "Retrieve Deliverables", message: "Are you sure you want to retrieve \[N\] deliverable(s)? They will be restored to the active board in their previous statuses." User clicks "Retrieve" to proceed or "Cancel" to abort.
*   When a deliverable is unarchived, its status is reset to "Post-event Processing" and it appears under the "Post-event Processing" stage section on the active board.
*   All other data (editor assignment, media storage location, due date, internal review link, chat history, payment status, priority) is restored as it was at the time of archiving.
*   The archived count decreases by one, and the "Post-event Processing" stage count increases by one.
*   Unarchiving does not trigger any notifications to editors or clients.
*   If the deliverable had an editor assigned before archiving, the assignment is preserved after unarchiving.
#201
**FRD 6: Archive / Unarchive Functionality** > **4\. Functional Logic** > 4.4 Role Restrictions
~116 tok
### 4.4 Role Restrictions

*   Supervisor Editors cannot see the "Archives" tab in their navigation bar.
*   Supervisor Editors do not have the "Archive" option in any context (three-dot menu is not visible to them, and their bulk action bar does not include Archive).
*   Junior Editors have no archive-related capabilities and no visibility into the Archived view.
*   Only Agency Owner, Admin, and Project Manager can archive, view archived items, and unarchive.
#202
**FRD 6: Archive / Unarchive Functionality** > **4\. Functional Logic** > 4.5 Impact on Other Modules
~193 tok
### 4.5 Impact on Other Modules

*   Archived deliverables are not counted toward active post-production workload metrics or reports.
*   If a deliverable is archived but it was the last remaining deliverable in "Delivered" status for a project, the project's pipeline stage may have already transitioned to "Completed." Archiving does not reverse this transition.
*   If a deliverable is unarchived and the project is in "Completed" status, the project may need to be manually moved back to "Post Production" by an agency user since the unarchived deliverable's status resets to "Post-event Processing."
*   Archived deliverables are not visible to clients in the Client Portal.
*   Chat history on archived deliverables is preserved and accessible from the Archived view.
#203
**FRD 6: Archive / Unarchive Functionality** > **5\. Field Details & Validations**
~10 tok
## **5\. Field Details & Validations**
#204
**FRD 6: Archive / Unarchive Functionality** > **5\. Field Details & Validations** > 5.1 Archived View Columns
~274 tok
### 5.1 Archived View Columns

**Field Name**

**Field Type**

**Editable in Archived View**

**Notes**

Project Name

Text (clickable link)

No

Links to project detail page.

Deliverable Type

Text

No

Read-only.

Editor

Avatar + Initials

No

Shows assigned editor at time of archiving.

Chat

Icon + Badge

Yes (view and send messages)

Chat remains active on archived items.

Status

Text

No

Shows "Archives" for all items.

Priority

Badge

No

Read-only. Shows Standard (green), High (red), or Urgent (orange) at time of archiving.

Event Date

Date

No

Read-only.

Due Date

Date

No

Read-only.

Service Area

Text

No

Read-only.

Brand

Icon

No

Read-only.

Media Storage Location

Tag/Link

No

Read-only. Shows value at time of archiving.

Editor Paid

Checkbox/Text

No

Read-only. Shows payment status at time of archiving.

Project Manager

Avatar + Initials

No

Read-only.

Internal Review Link

Text/URL

No

Read-only.

Questionnaire

Button ("View")

Read-only

Opens contractor and client questionnaires view.

Actions

Three-dot menu

Yes

Unarchive option available.
#205
**FRD 6: Archive / Unarchive Functionality** > **6\. Success Message Handling**
~133 tok
## **6\. Success Message Handling**

**Action**

**Success Message**

**Post-Success Behavior**

Deliverable archived (single)

"Deliverable archived successfully."

Deliverable removed from active board. Archived count updates.

Deliverables archived (bulk)

"\[N\] deliverables archived successfully."

All selected deliverables removed from active board. Archived count updates.

Deliverable unarchived

"Deliverable restored successfully."

Deliverable appears in Post-event Processing on active board. Archived count decreases.
#206
**FRD 6: Archive / Unarchive Functionality** > **7\. Error Message Handling**
~175 tok
## **7\. Error Message Handling**

**Error Scenario**

**Error Message**

**Trigger Condition**

**Required Action**

Network failure during archive

"Unable to archive deliverable. Please check your connection and try again."

Network error during archive operation.

Retry after connectivity is restored.

Network failure during unarchive

"Unable to restore deliverable. Please check your connection and try again."

Network error during unarchive operation.

Retry after connectivity is restored.

Attempting to archive with no selection (bulk)

"Please select at least one deliverable to archive."

User clicks Archive in bulk bar with no checkboxes selected.

Select at least one deliverable.
#207
**FRD 6: Archive / Unarchive Functionality** > **8\. Edge Cases**
~408 tok
## **8\. Edge Cases**

**Edge Case**

**Expected System Behavior**

User archives a deliverable that is in "Delivered" status

Allowed. The deliverable moves to the Archived list. The delivery link is preserved.

User archives a deliverable that has an active chat

The chat history is preserved and remains accessible from the Archived view.

User unarchives a deliverable whose assigned editor has been removed from the team

The deliverable is restored with no editor assigned. The editor column shows "Assign."

User archives all deliverables on the board

All stage sections show (0) counts. The active board displays the empty state message.

User archives a deliverable and then the same project receives a new deliverable

The new deliverable appears on the active board normally. The archived deliverable remains in the archive.

User tries to archive from the Archived view

Not applicable — items in the Archived view are already archived. Only unarchive is available.

Multiple users archive the same deliverable simultaneously

First action succeeds. Second user sees the deliverable already removed on their next refresh.

Unarchived deliverable had a due date that is now in the past

The deliverable is restored with the original due date, even if it is now past. The system does not modify the due date.

User bulk archives deliverables from different stages

Allowed. Deliverables from any stage can be selected and archived in bulk. Each source stage count decreases accordingly.

Unarchived deliverable had "Urgent" priority

The priority is restored as "Urgent" (orange) exactly as it was at time of archiving.
#208
**FRD 6: Archive / Unarchive Functionality** > **9\. Acceptance Criteria**
~267 tok
## **9\. Acceptance Criteria**

*   Deliverables can be archived from any status stage via the three-dot menu or bulk action bar.
*   Archived deliverables are removed from the active board and appear in the Archived view.
*   The "Archives" tab is visible only to agency users (Owner, Admin, PM) and not to editors.
*   The Archived view displays all archived deliverables in a flat list with all relevant columns including priority with correct color coding (Standard=green, High=red, Urgent=orange).
*   Deliverables can be unarchived from the Archived view, restoring them to "Post-event Processing" on the active board.
*   All data (except status) is preserved through the archive and unarchive cycle, including priority values.
*   Chat history remains accessible on archived deliverables.
*   Supervisor and Junior Editors cannot see the Archives tab, cannot archive items, and cannot unarchive items.
*   Archived deliverables do not appear in active board search or filter results.
*   Archived deliverables are not visible to clients in the Client Portal.
#209
**FRD 6: Archive / Unarchive Functionality** > **10\. Manual Test Cases**
~58 tok
## **10\. Manual Test Cases**

Test cases for this FRD are provided in the accompanying Excel file: [**Post\_Production\_Test\_Cases.xlsx — Sheet: "FRD6 Archive Unarchive"**](https://claude.ai/chat/Post_Production_Test_Cases.xlsx)
#210
**FRD 6: Archive / Unarchive Functionality** > **11\. Dependencies**
~99 tok
## **11\. Dependencies**

**Module/System**

**Dependency Type**

**Impact if Unavailable**

Post Production Board (Active)

Data

Cannot determine which deliverables to archive or where to restore unarchived items.

Data Storage

Infrastructure

Archived items cannot be persisted or retrieved.

Client Portal

Integration

Must ensure archived deliverables are correctly hidden from client view.
#211
**FRD 6: Archive / Unarchive Functionality** > **12\. References**
~99 tok
## **12\. References**

*   Figma Screenshots: Archived View (Image 4), Board with Archive Tab (Images 29, 30), Bulk Actions with Archive (Image 37), Three-dot Menu (Image 28), Board with Archive Icon (Image 3)
*   Meeting Notes: Post\_Production\_Dec\_22\_2025.pdf
*   Initial Documentation: Pixally\_Post-production\_notes\_Shared.pdf
*   Meeting Transcript: Post-Production-1e0a29d7-a376.json