29. Global Search_
Pixally CRMGlobal Search
Global Search Module
Functional Requirement Document
BA & Ideation: Dakshraj Jhala
Reviewed By: KG (Project Manager)
Updated Date: 15 September 2025
Status:
Version 1.0
Functional Requirements Document (FRD) - Global Search Module
1. Module Overview
- Module Name: Global Search
- Purpose: Provide comprehensive search functionality within the Pixally CRM system across two portals: Agency Portal (full search across Projects, Clients & Companies, Contractors, Files) and Contractor Portal (project-specific search)
- Business Goal: Enable users to quickly locate and access relevant information within their respective portal access levels, improving productivity and user experience
2. User Roles & Permissions
Agency Portal Users:
Role
Description
Key Permissions
Agency Owner
Business owner
Full access to search all entities (Projects, Clients & Companies, Contractors, and Files) across all brands
Agency Admin
System administrator
Full access to search all entities (Projects, Clients & Companies, Contractors, and Files) across all brands
Project Manager
Team leader
Search access is limited to assigned projects, assigned project clients, and files, but users can search all contractors in the agency
Contractor Portal Users:
Role
Description
Key Permissions
Contractor
External service provider
Search access limited to assigned projects/events only
3. User Flow
Agency Portal Search Flow:
Contractor Portal Search Flow:
4. Functional Logic
4.1 Search Shortcut
Search Shortcut: Users can access the Global Search using shortcut keys:
- Mac: ⌘ + K
- Windows: Ctrl + K
4.2 Core Search Logic:
- Search-as-you-type: Results update in real-time as the user types, and the result will be displayed for all the brands of the agency
- Minimum Characters: Search begins after the user types at least 1 character.
- Partial Match: System performs substring matching (case-insensitive) - search term can be contained anywhere within the field value
- Multi-Word Search: Multi-word queries use AND logic. For example, "John Wedding" matches records containing BOTH "John" AND "Wedding" anywhere in searchable fields. The match is order-independent, meaning the terms can appear in any order within the record.
- No Association Match: Each entity type is searched independently - associated records are not included unless they match the search criteria directly
- Multi-Entity Search: Single query searches across all four entity types (Projects, Clients & Companies, Contractors, Files) simultaneously
- Permission-Based Filtering: Results are filtered based on user role permissions (assigned project restriction) before display
- "See All Results" Button Visibility: The button is visible when ANY single category has more than 3 results. The button is hidden if all categories have 3 or fewer results each.
- No Search History: The search popup does not display previous search history or search suggestions. The search input is always blank when the popup opens.
- Clear Search Input Behavior: If the user deletes all characters from the search input after results have loaded, the results disappear and the popup returns to the empty state with keyboard navigation instructions. Filters are not applied in the empty state.
- Permission Revoked Mid-Search: If the user loses access to an entity between executing the search and clicking on a result (e.g., Project Manager removed from a project), the system redirects to a 404 error page. The user also receives a notification that they have been removed from the project.
4.3 Search Result Ranking Logic (for Global Search)
- When multiple records match the same keyword, the system should prioritize results based on these rules:
- Exact Match First
- Records where the search term exactly matches the beginning of the search result.
- Example: Searching “Oliv” → “Olivia & Lucas Wedding” appears above “The Olive House Shoot”.
- Partial Match After
- Records where the keyword is found anywhere in the name or field.
- Example: “The Olive House Shoot” comes after “Olivia & Lucas Wedding”.
- Search result display order
- Search results display order is fixed: Projects > Clients & Companies > Contractors > Files.
- Recency Factor
- For the same entity type, newer or upcoming records should rank higher than older ones.
- Example: Wedding in Oct 2025 shows before Wedding in May 2018.
- Category/Entity Display
- Search results will display only those categories that have found results based on the search query.
- Example: If only Files are found from the search query, then other entities, i.e., Project, Clients & Companies, and Contractors, will not be displayed in the result.
- Exact Match First
4.4 Agency Portal:
Search Matching Logic:
- Projects: A project will be displayed if the search query matches any of the following:
- Project name, Event name/type, Client name (if client associated with project)
- Clients & Companies: A client/company will be displayed if the search query matches any of the following:
- Client name, Client email address, Company name
- Contractors: A contractor will be displayed if the search query matches any of the following:
- Contractor name, Contractor email address, and Gear details provided by the contractor (photography/videography camera, phone models, etc.)
- Files: A file will be displayed if the search query matches the:
- File name / Document name
- Project name (the project the file belongs to)
- Event name (the event the file is uploaded under)
- Searchable File Sources (Project/Event Level):-
- Uploaded Files — Locally uploaded files (pdf, doc, xls) added by agency users, clients, or contractors from the "Uploaded Files" sub-tab
- Documents & Forms — System-generated documents from the "Documents & Forms" sub-tab, including Invoices, Proposals, Contracts, Questionnaires, and Service Agreements
- Excluded: Library module files (Images and Documents tabs) are NOT included in Global Search results
- Permission-Based Filtering: Same visibility rules from the Files/Documents module apply: - Files uploaded by contractors are visible only to agency users (not to clients or other contractors)
- Files uploaded by clients are visible only to agency users (not to contractors)
- Project Managers can only see files from their assigned projects
- **Click Action:** Clicking a file result redirects to the respective Project's Files/Documents tab where the file resides
4.5 Contractor Portal:
- Projects: A project will be displayed if the search query matches the following:
- Project name only (limited to assigned projects)
4.6 Filter Logic:
- Result Type Filter: Search results are narrowed down based on the selected entity type.
- Options: All (default), Projects, Clients & Companies, Contractors, Files
- Default Value: "All"
- Projects – Displays only project records that match the search query.
- Clients & Companies – Filters results to show only client profiles or company records.
- Contractors – Displays only contractor records.
- Files – Displays only files from the results.
- Brand Filter:
- The brand filter dropdown will show the brands of the agency
- Filter results to show only entities (Projects, Clients & Companies, Contractors, Files) associated with the selected brand.
- Default Value: "All Brands"
- Combined Filters: Both filters (Result Type & Brand) can be applied simultaneously for refined results
- Filter State: Filters persist when navigating between the popup and detailed tabs via the Back button.
- Filters reset to "All" (Result Type) and "All Brands" (Brand Filter) when:
- The popup is closed and reopened
- The browser is refreshed
- The user logs out and logs back in
- Filters reset to "All" (Result Type) and "All Brands" (Brand Filter) when:
4.7 "See All Results" Detailed Interface Logic:
- Page Header: Displays "All Results for '[search query]' with a back button.
- Back Button: On click, returns the user to the global search popup with the original search query and filters maintained.
- Tab Structure: Four main tabs with result counts displayed in parentheses:
- Projects - Default selected tab
- Clients and Companies
- Contractors
- Files
Tab Visibility Based on Filters:
Filter Applied
Result on Listing Page
No filters (All / All Brands)
All 4 tabs visible with respective results
Brand filter only
All 4 tabs visible, but only results matching that brand
Category filter only (e.g., Projects)
Only the selected category tab visible
Brand + Category filter
Only selected category tab, filtered by brand
- Tab Content: Each tab shows only search results matching the original search query
- Pagination Controls: Available in all tabs, when results exceed 10 rows. It includes a rows-per-page dropdown and page navigation with Previous/Next buttons. Refer to Click Here
4.8 Projects Tab Detailed Logic:
- Columns: Project name, Next Event Date, Users, Brand, Service area, Actions
- Data Source: Only displays projects matching the search query
- Next Event Date: Displayed according to user's Date & Time Preferences from My Profile settings. If no next event exists, display "—".
- Action button:
- "View Details" CTA is available for each project. On click, it will redirect to the project details page for that project
Deleted Entity Handling:
- If a clicked project was deleted by another user after the search was executed, the system redirects to a 404 error page. The deleted project is removed from the search results upon returning.
4.9 Clients and Companies Tab Detailed Logic:
- Display Logic: Results grouped under respective headings based on client status (Lead or Booked) and company
- Data Source: Display only clients (Booked & Leads) OR Companies matching the search query (name, email, company name)
- Sub-categorization with counts of matching results:
- Booked Clients Section - Display the clients in the booked stage, matching the search query
- Columns - Client Name, Contact, Projects, Company, Brands, Actions
- Leads - Display the clients in the lead stage, matching the search query
- Columns - Client Name, Contact, Projects, Company, Brands, Actions
- Actions Column - Kebab Menu options:
- Delete - Click Here
- Archive - Click Here
- Edit options - Click Here
- Companies - Display the company names matching the search query
- Columns - Company Name, Contact, Projects, Clients, Brands, Action
- Action Column - Kebab Menu Options
- “Delete” - Click Here
- “Archive” - Click Here
- “Edit options” - Click Here
- Booked Clients Section - Display the clients in the booked stage, matching the search query
4.10 Contractors Tab Detailed Logic:
- Display Logic: Results grouped based on contractor status in the contractor management Module (Active, Setup Required, Pending Invitation)
- Data Source: Only contractors matching the search query (name, email) will be displayed
- Sub-categorization with Counts:
- Active Tab- Display Active contractors matching the search query
- Column - Name, Brands, Service area, Pay rates, Next event, Projects, Rating, Actions
- Action Buttons:
- "View Profile", On click, it will redirect to the Profile page of the contractor. Refer - Click Here
- Set up Required Tab - Display Contractors whose setup is required, matching the search query
- Column - Name, Invited By, Brands, Actions
- Action Button:
- “Set Up User”, On click opens the set up contractor pop-up. Refer - Click Here
- Pending Invitation Tab - Display contractors with a pending invitation matching the search query
- Column - Email/Name, Invited BY, Brand, Date sent, Actions
- Action Button:
- “Resend Invite”, On click action Refer - Click Here
- “Set Up anyway”, On click, opens the set up contractor pop-up. Refer - Click Here
- “Cancel”, On click action - Refer - Click Here
- Active Tab- Display Active contractors matching the search query
Field Display Formats:
- Rating: Displayed as X.X/5 format (e.g., "4.5/5"). If no rating exists, display "—".
- Next Event: Displayed according to user's Date & Time Preferences from My Profile settings. If no next event exists, display "—".
4.11 Files Tab Detailed Logic:
- Display Logic: File/Documents names matching search query with count "Files"
- Data Source: Files and documents from Project/Event level matching the search query(by file name, project name, or event name), filtered by user permissions. This includes:
- Uploaded Files (locally uploaded pdf, doc, xls)
- Documents & Forms (Invoices, Proposals, Contracts, Questionnaires, Service Agreements)
- **Excluded:** Library module files (Images and Documents tabs) are NOT searchable via Global Search
- **Columns**: File Name, Project Name, Event Name, Size, Uploaded On, Uploaded By, Actions
- **File Name**: Displays the file/document name with appropriate file type icon (PDF, DOC, XLS, or system-generated document icon)
- **Project Name**: Displays the name of the project the file belongs to
- **Event Name**: Displays the event name if the file is uploaded at the event level.
- **Size**: File size in KB/MB format.
- **Uploaded On**: Displayed according to user's Date & Time Preferences from My Profile settings
- **Uploaded By**: Name of the user who uploaded/created the file
- Actions: Download and Delete buttons for each file
- Download: Downloads the file to the local system
- Delete Functionality: The Delete action removes the file from the system with confirmation
- **Row Click Action**: Clicking on a file row redirects the user to the respective Project's Files/Documents tab where the file resides
- **Permission-Based Display Rules**: - Files uploaded by contractors are visible only to agency users - Files uploaded by clients are visible only to agency users - Project Managers see only files from their assigned projects - Agency Owner and Agency Admin can see all files across all projects
4.12 Navigation Logic:
- Tab Switching: Users can switch between tabs while maintaining search context
- Search Context: Original search query and results persist across tab navigation
- Back Navigation: Back button returns to the global search popup with the original search maintained
- Filter Persistence: Applied filters from the pop-up carry over to the detailed tabs.Filters persist when navigating back to the popup via the Back button.
4.13 Contractor Portal Logic:
Search Logic:
- Search-as-you-type: Results update in real-time as the contractor types (minimum 1 character)
- Partial Match: System performs substring matching (case-insensitive) on project names only - search term can be contained anywhere within the project name
- Assignment-Based Filtering: Only projects where the contractor is assigned are searchable and displayed
- Simple Results Display: Matching projects shown in basic list format without categorization
- Cross-Agency Visibility: Global search shows projects assigned to the contractor across all agencies, not just the currently selected agency
Permission Logic:
- Results automatically filtered to the contractor's assigned projects/events
Agency Switch Enforcement ("Wrong Studio" Popup):
- If a contractor attempts to open project details that belong to a different agency than their current one, the "Wrong Studio" popup is displayed.
- The popup contains:
- Brand Icons: Overlapping circles showing the target brand logos
- Warning Icon: Exclamation mark indicator
- Title: "Wrong Studio!"
- Message: "You're trying to access an event that belongs to one of your other brands. Would you like to switch to that brand now?"
- Buttons: "Cancel" (secondary) | "Yes, Switch" (primary/yellow)
- If the contractor clicks "Yes, Switch", the system switches to the correct agency and navigates to the project detail page.
- If the contractor clicks "Cancel", the popup closes and the contractor remains on the current page with the search still open.
4.14 Common Logic (Both Portals):
No result found Logic:
- Display "Oops..." message with icon when no matches are found
- Show "No matches for 'search term' with actual search term
- Provide a "Clear Search" button to reset the search
- Include keyboard navigation instructions at the bottom
4.15 Search Popup Closure Logic
Closure Methods:
- X Button: Clicking the X button in the top-right corner of the popup closes it.
- ESC Key: Pressing the ESC key on the keyboard closes the popup.
- Outside Click: Clicking anywhere outside the popup area closes it.
Closure Behavior:
- When the popup is closed via X button, ESC key, or outside click:
- The search query is cleared
- All filters are reset to defaults ("All" for Result Type, "All Brands" for Brand Filter)
- No state is preserved
Result Click Behavior:
- When the user clicks on a search result:
- The system navigates to the entity's detail page
- The popup closes automatically
- No state is preserved (search query and filters are cleared)
5. Field Details & Validations
Agency Portal Fields:
Field Name
Type
Validation Rules
Search Query
Text Input
No Character Limit, Search-as-you-type enabled
Result Type Filter
Dropdown
Options: All, Projects, Clients & Companies, Contractors, Files
Brand Filter
Dropdown
Dynamic list based on agency brands
Clear Search
Button
Clears search input and resets filters
See All Results
Button
Opens detailed tabbed interface; Visible only when any category has >3 results; Hidden when all categories have ≤3 results
No match found
UI Component
Shows "Oops..." with message "No matches for [search term]
Close
Button
On click, it closes the pop-up
Contractor Portal Fields:
Field Name
Type
Validation Rules
Search Query
Text Input
Maximum 100 characters, Search-as-you-type enabled
No match found
UI Component
Shows "Oops..." with message "No matches for 'search term'
Cross/Clear
Button
Clears search input
Pagination Fields:
- Link - Click Here
6. Edge Cases
Scenario
Expected Behavior
Search query matches multiple entity types
Display all matching categories with respective counts
User has no permissions for certain entities
Hide/exclude restricted entities from results
Very large result sets
Implement pagination in detailed tabs
Multi-word search query
Use AND logic; match records containing ALL search terms (order-independent)
User clears search input after results load
Results disappear, popup returns to empty state with keyboard instructions, filters not applied
Entity deleted by another user while search results are open
If user clicks the deleted entity, redirect to 404 error page; remove entity from results when user returns to search
Permission revoked mid-search (e.g., PM removed from project)
If user clicks the entity, redirect to 404 error page; user receives notification that they have been removed from the project
File belongs to a deleted project
File should not appear in search results. If cached results show the file and user clicks it, redirect to 404 error page
File's parent project access revoked for PM
File should not appear in search results for that Project Manager
System-generated document (Invoice/Contract) is in draft status
Only published/sent documents should appear in search results; drafts are excluded
Same file name exists across multiple projects
All matching files are displayed with their respective Project Name and Event Name columns for differentiation
Search query matches project/event name but not file name
All files belonging to that matching project/event are displayed under the Files category
7. Test Cases
- Link:
8. Acceptance Criteria
Agency Portal
- Global search is accessible from any page within the Pixally CRM Agency Portal
- Search functionality works across Projects, Clients & Companies, Contractors, Gears, and Files
- Search-as-you-type functionality with real-time results
- Multi-word search queries use AND logic (all terms must be present in matching records).
- Results are displayed in a categorized format with accurate counts in detailed tabs
- Result Type filter defaults to "All" and Brand filter defaults to "All Brands".
- Result Type and Brand filters function correctly and can be used simultaneously
- Permission-based result filtering implemented for Project Managers
- "See All Results" button is visible when any single category has more than 3 results.
- "See All Results" button is hidden when all categories have 3 or fewer results.
- "See All Results" opens a detailed tabbed interface with pagination
- Tab visibility in detailed view follows filter logic:
- No filters → All 4 tabs visible
- Brand filter only → All 4 tabs visible (filtered by brand)
- Category filter only → Only selected category tab visible
- Both filters → Only selected category tab (filtered by brand)
- Search performance acceptable
- Clear/cross button functionality works
- The back button in the detailed view returns to the search pop-up
- Filter persistence works correctly:
- Filters persist when navigating popup ↔ detailed tabs via Back button
- Filters reset to All/All Brands when popup closed and reopened or on browser refresh
- Empty state displays proper "Oops..." message with clear search option
- Search popup closes correctly via X button, ESC key, or outside click.
- Popup closure clears search query and resets filters to defaults.
- Clicking a search result navigates to entity detail page and closes popup.
- If entity was deleted after search executed, 404 error page is shown.
- If user's permission was revoked after search executed, 404 error page is shown with notification.
- No search history or suggestions are displayed; search input is always blank on popup open.
- Date fields display according to user's Date & Time Preferences.
- Contact field displays primary email, or phone if no email, or "—" if neither.
- Rating field displays as X.X/5 format or "—" if no rating.
Contractor Portal
- Global search is accessible from any page within the Contractor Portal
- Search functionality works for assigned projects only
- Search-as-you-type functionality with real-time results
- Results display matching project names in a simple list format
- Permission-based filtering: only assigned projects are visible
- Cross-agency projects are visible in search results.
- "Wrong Studio" popup displays when contractor clicks project from different agency:
- Shows brand icons and warning indicator
- Title: "Wrong Studio!"
- Message explains the situation and asks to switch
- Buttons: "Cancel" / "Yes, Switch"
- Clicking "Yes, Switch" switches agency and navigates to project.
- Clicking "Cancel" closes popup and returns to search.
- Search performance acceptable (response time < 3 seconds)
- Clear/cross button functionality works
- Empty state displays proper "Ooops..." message with clear search option
- Search popup closes correctly via X button, ESC key, or outside click.
- No "See All Results" button or detailed tabs
Detailed Tab
- Projects Tab: Displays Project name, Next event date, Users, Brand, Service area, Actions
- Clients & Companies Tab: Groups results as Booked Clients, Leads, and Companies, with counts of results found
- Contractors Tab: Groups by Active, Setup Required, Pending Invitation, with counts of results found
- Files Tab: Shows file/document names with columns — File Name, Project Name, Event Name, Size, Uploaded On, Uploaded By, and Actions (Download & Delete)
- Files Tab includes Uploaded Files and Documents & Forms (Invoices, Proposals, Contracts, Questionnaires, Service Agreements)
- Library module files and Email Templates are excluded from Global Search
- Clicking a file row navigates to the respective Project's Files/Documents tab
- Permission-based visibility rules are enforced: contractor-uploaded files visible only to agency users, client-uploaded files visible only to agency users
- Project Managers see only files from their assigned projects
- System-generated documents in draft status are excluded from search results
- Files are searchable by file name, project name, and event name
- Searching a project name returns all files belonging to that project under the Files category
- Searching an event name returns all files belonging to that event under the Files category
9. Dependencies
Agency Portal Dependencies:
Module/System
Dependency Type
Impact if Unavailable
Project Management
Data dependency
Cannot search/display project data
Client Management
Data dependency
Cannot search/display client data
Contractor Management
Data dependency
Cannot search/display contractor data
File Management
Data dependency
Cannot search/display file data
Authentication System
Service dependency
Cannot enforce permission-based filtering
Brand Management
Data dependency
Brand filter non-functional
Documents & Forms (Invoices, Proposals, Contracts, Questionnaires)
Data dependency
Cannot search/display system-generated document data
Contractor Portal Dependencies:
Module/System
Dependency Type
Impact if Unavailable
Project Management
Data dependency
Cannot search/display project data
Contractor Assignment System
Service dependency
Cannot filter assigned projects
Authentication System
Service dependency
Cannot verify contractor access
10. References
- Figma Link: Click Here
Global Search Updated
Functional Requirements Document (FRD) - Global Search Module
Module: Global Search BA & Ideation: Dakshraj Jhala Reviewed By: KG (Project Manager) Updated Date: 23 April 2026 Status: Version: 1.1
1. Module Overview
- Module Name: Global Search
- Purpose: Provide comprehensive search functionality within the Pixally CRM system across two portals: Agency Portal (full search across Projects, Clients & Companies, Contractors, Files) and Contractor Portal (project-specific search)
- Business Goal: Enable users to quickly locate and access relevant information within their respective portal access levels, improving productivity and user experience
2. User Roles & Permissions
Agency Portal Users:
Role
Description
Key Permissions
Agency Owner
Business owner
Full access to search all entities (Projects, Clients & Companies, Contractors, and Files) across all brands
Agency Admin
System administrator
Full access to search all entities (Projects, Clients & Companies, Contractors, and Files) across all brands
Project Manager
Team leader
Search access is limited to assigned projects, assigned project clients, and files, but users can search all contractors in the agency
Contractor Portal Users:
Role
Description
Key Permissions
Contractor
External service provider
Search access limited to assigned projects/events only
3. User Flow
Agency Portal Search Flow:
- User accesses Global Search via ⌘+K (Mac) or Ctrl+K (Windows)
- Search popup opens with empty search input
- User begins typing — results update in real-time after 1 character
- Results display across categories: Projects, Clients & Companies, Contractors, Files
- User can apply Result Type and/or Brand filters to narrow results
- User clicks on a result to navigate to entity detail page, OR
- User clicks "See All Results" to open detailed tabbed interface
- In detailed view, user can switch between tabs, apply pagination, and perform actions
Contractor Portal Search Flow:
- Contractor accesses Global Search via ⌘+K (Mac) or Ctrl+K (Windows)
- Search popup opens with empty search input
- Contractor begins typing — results show matching assigned projects
- Contractor clicks on a project to navigate to project details
- If project belongs to a different agency, "Wrong Studio" popup appears
4. Functional Logic
4.1 Search Shortcut
Search Shortcut: Users can access the Global Search using shortcut keys:
- Mac: ⌘ + K
- Windows: Ctrl + K
4.2 Core Search Logic:
- Search-as-you-type: Results update in real-time as the user types, and the result will be displayed for all the brands of the agency
- Minimum Characters: Search begins after the user types at least 1 character.
- Partial Match: System performs substring matching (case-insensitive) — search term can be contained anywhere within the field value
- Multi-Word Search: Multi-word queries use AND logic. For example, "John Wedding" matches records containing BOTH "John" AND "Wedding" anywhere in searchable fields. The match is order-independent, meaning the terms can appear in any order within the record.
- No Association Match: Each entity type is searched independently — associated records are not included unless they match the search criteria directly
- Multi-Entity Search: Single query searches across all four entity types (Projects, Clients & Companies, Contractors, Files) simultaneously
- Permission-Based Filtering: Results are filtered based on user role permissions (assigned project restriction) before display
- "See All Results" Button Visibility: The button is visible when ANY single category has more than 3 results. The button is hidden if all categories have 3 or fewer results each.
- No Search History: The search popup does not display previous search history or search suggestions. The search input is always blank when the popup opens.
- Clear Search Input Behavior: If the user deletes all characters from the search input after results have loaded, the results disappear and the popup returns to the empty state with keyboard navigation instructions. Filters are not applied in the empty state.
- Permission Revoked Mid-Search: If the user loses access to an entity between executing the search and clicking on a result (e.g., Project Manager removed from a project), the system redirects to a 404 error page. The user also receives a notification that they have been removed from the project.
4.3 Search Result Ranking Logic (for Global Search)
When multiple records match the same keyword, the system should prioritize results based on these rules:
- Exact Match First: Records where the search term exactly matches the beginning of the search result. Example: Searching "Oliv" → "Olivia & Lucas Wedding" appears above "The Olive House Shoot".
- Partial Match After: Records where the keyword is found anywhere in the name or field. Example: "The Olive House Shoot" comes after "Olivia & Lucas Wedding".
- Search result display order: Search results display order is fixed: Projects > Clients & Companies > Contractors > Files.
- Recency Factor: For the same entity type, newer or upcoming records should rank higher than older ones. Example: Wedding in Oct 2025 shows before Wedding in May 2018.
- Category/Entity Display: Search results will display only those categories that have found results based on the search query. Example: If only Files are found from the search query, then other entities, i.e., Project, Clients & Companies, and Contractors, will not be displayed in the result.
4.4 Agency Portal:
Search Matching Logic:
- Projects: A project will be displayed if the search query matches any of the following:
- Project name, Event name/type, Client name (if client associated with project)
- Clients & Companies: A client/company will be displayed if the search query matches any of the following:
- Client name, Client email address, Company name
- Contractors: A contractor will be displayed if the search query matches any of the following:
- Contractor name, Contractor email address, and Gear details provided by the contractor (photography/videography camera, phone models, etc.)
- Files: A file will be displayed if the search query matches any of the following:
- File name / Document name
- Project name (the project the file belongs to)
- Event name/type (the event the file is uploaded under)
- Searchable File Sources (Project/Event Level):
- Uploaded Files — Locally uploaded files (pdf, doc, xls) added by agency users, clients, or contractors from the "Uploaded Files" sub-tab
- Documents & Forms — System-generated documents from the "Documents & Forms" sub-tab, including Invoices, Proposals, Contracts, Questionnaires, and Service Agreements
- Excluded: Library module files (Images and Documents tabs) and Email Templates are NOT included in Global Search results.
- Permission-Based Filtering: Same visibility rules from the Files/Documents module apply:
- Files uploaded by contractors are visible only to agency users (not to clients or other contractors)
- Files uploaded by clients are visible only to agency users (not to contractors)
- Project Managers can only see files from their assigned projects
4.5 Contractor Portal:
- Projects: A project will be displayed if the search query matches the following:
- Project name only (limited to assigned projects)
4.6 Filter Logic:
-
Result Type Filter: Search results are narrowed down based on the selected entity type.
- Options: All (default), Projects, Clients & Companies, Contractors, Files
- Default Value: "All"
-
Projects – Displays only project records that match the search query.
-
Clients & Companies – Filters results to show only client profiles or company records.
-
Contractors – Displays only contractor records.
-
Files – Displays only files from the results.
-
Brand Filter:
- The brand filter dropdown will show the brands of the agency
- Filter results to show only entities (Projects, Clients & Companies, Contractors, Files) associated with the selected brand.
- Default Value: "All Brands"
-
Combined Filters: Both filters (Result Type & Brand) can be applied simultaneously for refined results
-
Filter State: Filters persist when navigating between the popup and detailed tabs via the Back button.
- Filters reset to "All" (Result Type) and "All Brands" (Brand Filter) when:
- The popup is closed and reopened
- The browser is refreshed
- The user logs out and logs back in
- Filters reset to "All" (Result Type) and "All Brands" (Brand Filter) when:
4.7 "See All Results" Detailed Interface Logic:
- Page Header: Displays "All Results for '[search query]'" with a back button.
- Back Button: On click, returns the user to the global search popup with the original search query and filters maintained.
- Tab Structure: Four main tabs with result counts displayed in parentheses:
- Projects — Default selected tab
- Clients and Companies
- Contractors
- Files
Tab Visibility Based on Filters:
Filter Applied
Result on Listing Page
No filters (All / All Brands)
All 4 tabs visible with respective results
Brand filter only
All 4 tabs visible, but only results matching that brand
Category filter only (e.g., Projects)
Only the selected category tab visible
Brand + Category filter
Only selected category tab, filtered by brand
- Tab Content: Each tab shows only search results matching the original search query
- Pagination Controls: Available in all tabs, when results exceed 10 rows. It includes a rows-per-page dropdown and page navigation with Previous/Next buttons.
4.8 Projects Tab Detailed Logic:
- Columns: Project name, Next Event Date, Users, Brand, Service area
- Data Source: Only displays projects matching the search query
- Next Event Date: Displayed according to user's Date & Time Preferences from My Profile settings. If no next event exists, display "---".
- Row Click Action: Clicking on the project name redirects the user to the project details page for that project.
Deleted Entity Handling:
- If a clicked project was deleted by another user after the search was executed, the system redirects to a 404 error page. The deleted project is removed from the search results upon returning.
4.9 Clients and Companies Tab Detailed Logic:
-
Display Logic: Results grouped under respective headings based on client status (Lead or Booked) and company
-
Data Source: Display only clients (Booked & Leads) OR Companies matching the search query (name, email, company name)
-
Sub-categorization with counts of matching results:
- Booked Clients Section — Display the clients in the booked stage, matching the search query
- Columns — Client Name, Contact, Projects, Company, Brands
- Leads — Display the clients in the lead stage, matching the search query
- Columns — Client Name, Contact, Projects, Company, Brands
- Companies — Display the company names matching the search query
- Columns — Company Name, Contact, Projects, Clients, Brands
- Booked Clients Section — Display the clients in the booked stage, matching the search query
-
Row Click Action: Clicking on the client/company name redirects the user to the respective client or company detail page.
4.10 Contractors Tab Detailed Logic:
-
Display Logic: Results grouped based on contractor status in the contractor management Module (Active, Setup Required, Pending Invitation)
-
Data Source: Only contractors matching the search query (name, email) will be displayed
-
Sub-categorization with Counts:
- Active Tab — Display Active contractors matching the search query
- Column — Name, Brands, Service area, Pay rates, Next event, Projects, Rating
- Set up Required Tab — Display Contractors whose setup is required, matching the search query
- Column — Name, Invited By, Brands
- Pending Invitation Tab — Display contractors with a pending invitation matching the search query
- Column — Email/Name, Invited BY, Brand, Date sent
- Active Tab — Display Active contractors matching the search query
-
Row Click Action: Clicking on the contractor name redirects the user to the contractor's profile page. For "Setup Required" and "Pending Invitation" contractors, users can perform setup/invite actions from the contractor's profile page or the Contractor Management module.
Field Display Formats:
- Rating: Displayed as X.X/5 format (e.g., "4.5/5"). If no rating exists, display "---".
- Next Event: Displayed according to user's Date & Time Preferences from My Profile settings. If no next event exists, display "---".
4.11 Files Tab Detailed Logic:
-
Display Logic: File/document names matching search query with count "Files"
-
Data Source: Files and documents from Project/Event level matching the search query (by file name, project name, or event name), filtered by user permissions. This includes:
- Uploaded Files (locally uploaded pdf, doc, xls)
- Documents & Forms (Invoices, Proposals, Contracts, Questionnaires, Service Agreements)
- Excluded: Library module files (Images and Documents tabs) and Email Templates are NOT searchable via Global Search.
-
Columns: Name, Type, Created On
- **Name Column (Multi-line Display):
**- Line 1 — File/Document Name: Displays the file or document name with appropriate file type icon (Doc icon for .doc/.docx, XLS icon for .xls/.xlsx, PDF icon for .pdf; respective system icons for Invoices, Contracts, etc.). If the file name exceeds the available column width, truncate with ellipsis.
- Line 2 — Project Name: Displays the name of the project the file belongs to in grey/secondary text. If the project name exceeds the available width, truncate with ellipsis.
- Line 3 — Event Type: Displays the event type (e.g., WEDDING, ENGAGEMENT, ANNIVERSARY, BIRTHDAY) in uppercase with a colored dot indicator. The dot color is derived from the brand settings configured during project/brand setup. Each brand/event type has its own distinct color.
- Project name and event type are display-only (not clickable).
- Type Column:
- For locally uploaded files: "Document" (for .doc/.docx), "Excel Sheet" (for .xls/.xlsx), "PDF" (for .pdf)
- For system-generated documents: "Invoice", "Proposal", "Contract", "Questionnaire", "Service Agreement"
- Sortable column (sort arrow on Type)
- Created On Column: Date displayed according to user's Date & Time Preferences from My Profile settings (e.g., "Jun 12, 2025")
- **Name Column (Multi-line Display):
-
Default Sorting: Newest first (by Created On date, descending)
-
Click Behavior (Row Click):
- System-generated files (Invoice, Proposal, Contract, Questionnaire, Service Agreement): Clicking the row redirects the user to the respective document's activity/detail page
- Locally uploaded PDF files: Clicking the row opens the PDF in a new browser tab directly
- Locally uploaded Doc/XLSX files: Clicking the row opens a download popup displaying:
- File name (with numbering prefix, e.g., "1. Agency Auth .docx")
- "Uploaded On [date] · By [uploader name]" in secondary text
- Close (X) button in the top-right corner
- Message: "This file can't be previewed. Try downloading it instead."
- "Download" button (primary/yellow CTA)
-
Permission-Based Display Rules:
- Files uploaded by contractors are visible only to agency users
- Files uploaded by clients are visible only to agency users
- Project Managers see only files from their assigned projects
- Agency Owner and Agency Admin can see all files across all projects
4.12 Navigation Logic:
- Tab Switching: Users can switch between tabs while maintaining search context
- Search Context: Original search query and results persist across tab navigation
- Back Navigation: Back button returns to the global search popup with the original search maintained
- Filter Persistence: Applied filters from the pop-up carry over to the detailed tabs. Filters persist when navigating back to the popup via the Back button.
4.13 Contractor Portal Logic:
Search Logic:
- Search-as-you-type: Results update in real-time as the contractor types (minimum 1 character)
- Partial Match: System performs substring matching (case-insensitive) on project names only — search term can be contained anywhere within the project name
- Assignment-Based Filtering: Only projects where the contractor is assigned are searchable and displayed
- Simple Results Display: Matching projects shown in basic list format without categorization
- Cross-Agency Visibility: Global search shows projects assigned to the contractor across all agencies, not just the currently selected agency
Permission Logic:
- Results automatically filtered to the contractor's assigned projects/events
Agency Switch Enforcement ("Wrong Studio" Popup):
- If a contractor attempts to open project details that belong to a different agency than their current one, the "Wrong Studio" popup is displayed.
- The popup contains:
- Brand Icons: Overlapping circles showing the target brand logos
- Warning Icon: Exclamation mark indicator
- Title: "Wrong Studio!"
- Message: "You're trying to access an event that belongs to one of your other brands. Would you like to switch to that brand now?"
- Buttons: "Cancel" (secondary) | "Yes, Switch" (primary/yellow)
- If the contractor clicks "Yes, Switch", the system switches to the correct agency and navigates to the project detail page.
- If the contractor clicks "Cancel", the popup closes and the contractor remains on the current page with the search still open.
4.14 Common Logic (Both Portals):
No Result Found Logic:
- Display "Oops..." message with icon when no matches are found
- Show "No matches for '[search term]'" with actual search term
- Provide a "Clear Search" button to reset the search
- Include keyboard navigation instructions at the bottom
4.15 Search Popup Closure Logic
Closure Methods:
- X Button: Clicking the X button in the top-right corner of the popup closes it.
- ESC Key: Pressing the ESC key on the keyboard closes the popup.
- Outside Click: Clicking anywhere outside the popup area closes it.
Closure Behavior:
- When the popup is closed via X button, ESC key, or outside click:
- The search query is cleared
- All filters are reset to defaults ("All" for Result Type, "All Brands" for Brand Filter)
- No state is preserved
Result Click Behavior:
- When the user clicks on a search result:
- The system navigates to the entity's detail page (behavior varies by entity type — see Section 4.11 for Files-specific click behavior)
- The popup closes automatically
- No state is preserved (search query and filters are cleared)
5. Field Details & Validations
Agency Portal Fields:
Field Name
Type
Validation Rules
Search Query
Text Input
No Character Limit, Search-as-you-type enabled
Result Type Filter
Dropdown
Options: All, Projects, Clients & Companies, Contractors, Files
Brand Filter
Dropdown
Dynamic list based on agency brands
Clear Search
Button
Clears search input and resets filters
See All Results
Button
Opens detailed tabbed interface; Visible only when any category has >3 results; Hidden when all categories have ≤3 results
No match found
UI Component
Shows "Oops..." with message "No matches for [search term]"
Close
Button
On click, it closes the pop-up
Contractor Portal Fields:
Field Name
Type
Validation Rules
Search Query
Text Input
Maximum 100 characters, Search-as-you-type enabled
No match found
UI Component
Shows "Oops..." with message "No matches for '[search term]'"
Cross/Clear
Button
Clears search input
Files Tab — Detailed View Fields:
Field Name
Type
Validation Rules
Name (Line 1 — File Name)
Text
File/document name with file type icon; truncate with ellipsis if exceeds column width
Name (Line 2 — Project Name)
Text (secondary/grey)
Project name; truncate with ellipsis if exceeds column width
Name (Line 3 — Event Type)
Text (uppercase) with colored dot
Event type with brand-specific colored dot; color derived from brand settings
Type
Text
"Document", "Excel Sheet", "PDF" for local uploads; "Invoice", "Proposal", "Contract", "Questionnaire", "Service Agreement" for system-generated files; Sortable column
Created On
Date
Displayed per user's Date & Time Preferences
Files Tab — Download Popup Fields (for Doc/XLSX files):
Field Name
Type
Validation Rules
File Name
Text (bold)
Displays with numbering prefix (e.g., "1. Agency Auth .docx")
Upload Info
Text (secondary)
Format: "Uploaded On [date] · By [uploader name]"; truncate uploader name with ellipsis if too long
Close (X) Button
Button
Closes the popup
Preview Message
Text
"This file can't be previewed. Try downloading it instead."
Download Button
Primary Button (yellow)
Downloads the file to local system
6. Error Message Handling
Scenario
Error Message
Display Location
No search results found
"Oops... No matches for '[search term]'"
Search popup center area
Entity deleted after search executed
404 error page
Full page redirect
Permission revoked mid-search
404 error page + notification "You have been removed from the project"
Full page redirect + notification
File cannot be previewed (Doc/XLSX)
"This file can't be previewed. Try downloading it instead."
Download popup
7. Edge Cases
Scenario
Expected Behavior
Search query matches multiple entity types
Display all matching categories with respective counts
User has no permissions for certain entities
Hide/exclude restricted entities from results
Very large result sets
Implement pagination in detailed tabs
Multi-word search query
Use AND logic; match records containing ALL search terms (order-independent)
User clears search input after results load
Results disappear, popup returns to empty state with keyboard instructions, filters not applied
Entity deleted by another user while search results are open
If user clicks the deleted entity, redirect to 404 error page; remove entity from results when user returns to search
Permission revoked mid-search (e.g., PM removed from project)
If user clicks the entity, redirect to 404 error page; user receives notification that they have been removed from the project
File belongs to a deleted project
File should not appear in search results. If cached results show the file and user clicks it, redirect to 404 error page
File's parent project access revoked for PM
File should not appear in search results for that Project Manager
System-generated document (Invoice/Contract) is in draft status
Only published/sent documents should appear in search results; drafts are excluded
Same file name exists across multiple projects
All matching files are displayed with their respective Project Name and Event Type below the file name for differentiation
File uploaded by contractor searched by another contractor
File should not appear as contractor-uploaded files are only visible to agency users
Search query matches project/event name but not file name
All files belonging to that matching project/event are displayed under the Files category
File name or project name too long for column width
Truncate with ellipsis
File uploaded at project level with no event association
Project name displays on Line 2; Line 3 (Event Type) is not shown
8. Acceptance Criteria
Agency Portal
- Global search is accessible from any page within the Pixally CRM Agency Portal
- Search functionality works across Projects, Clients & Companies, Contractors, Gears, and Files
- Search-as-you-type functionality with real-time results
- Multi-word search queries use AND logic (all terms must be present in matching records)
- Results are displayed in a categorized format with accurate counts in detailed tabs
- Result Type filter defaults to "All" and Brand filter defaults to "All Brands"
- Result Type and Brand filters function correctly and can be used simultaneously
- Permission-based result filtering implemented for Project Managers
- "See All Results" button is visible when any single category has more than 3 results
- "See All Results" button is hidden when all categories have 3 or fewer results
- "See All Results" opens a detailed tabbed interface with pagination
- Tab visibility in detailed view follows filter logic:
- No filters → All 4 tabs visible
- Brand filter only → All 4 tabs visible (filtered by brand)
- Category filter only → Only selected category tab visible
- Both filters → Only selected category tab (filtered by brand)
- Search performance acceptable
- Clear/cross button functionality works
- The back button in the detailed view returns to the search pop-up
- Filter persistence works correctly:
- Filters persist when navigating popup ↔ detailed tabs via Back button
- Filters reset to All/All Brands when popup closed and reopened or on browser refresh
- Empty state displays proper "Oops..." message with clear search option
- Search popup closes correctly via X button, ESC key, or outside click
- Popup closure clears search query and resets filters to defaults
- Clicking a search result navigates to entity detail page and closes popup
- If entity was deleted after search executed, 404 error page is shown
- If user's permission was revoked after search executed, 404 error page is shown with notification
- No search history or suggestions are displayed; search input is always blank on popup open
- Date fields display according to user's Date & Time Preferences
- Contact field displays primary email, or phone if no email, or "---" if neither
- Rating field displays as X.X/5 format or "---" if no rating
Contractor Portal
- Global search is accessible from any page within the Contractor Portal
- Search functionality works for assigned projects only
- Search-as-you-type functionality with real-time results
- Results display matching project names in a simple list format
- Permission-based filtering: only assigned projects are visible
- Cross-agency projects are visible in search results
- "Wrong Studio" popup displays when contractor clicks project from different agency:
- Shows brand icons and warning indicator
- Title: "Wrong Studio!"
- Message explains the situation and asks to switch
- Buttons: "Cancel" / "Yes, Switch"
- Clicking "Yes, Switch" switches agency and navigates to project
- Clicking "Cancel" closes popup and returns to search
- Search performance acceptable (response time < 3 seconds)
- Clear/cross button functionality works
- Empty state displays proper "Oops..." message with clear search option
- Search popup closes correctly via X button, ESC key, or outside click
- No "See All Results" button or detailed tabs
Detailed Tab
- Projects Tab: Displays Project name, Next event date, Users, Brand, Service area (no Actions column). Clicking project name redirects to project details page.
- Clients & Companies Tab: Groups results as Booked Clients, Leads, and Companies, with counts of results found (no Actions column). Clicking client/company name redirects to respective detail page.
- Contractors Tab: Groups by Active, Setup Required, Pending Invitation, with counts of results found (no Actions column). Clicking contractor name redirects to contractor profile page.
- Files Tab:
- Displays columns — Name, Type, Created On
- Name column shows file name (Line 1), project name (Line 2), and event type with colored dot (Line 3)
- Event type dot color is derived from brand settings
- Type column shows: Document, Excel Sheet, PDF for local uploads; Invoice, Proposal, Contract, Questionnaire, Service Agreement for system-generated files
- Files Tab includes Uploaded Files and Documents & Forms (Invoices, Proposals, Contracts, Questionnaires, Service Agreements)
- Library module files and Email Templates are excluded from Global Search
- Files are searchable by file name, project name, and event name
- Click behavior:
- System-generated files redirect to their respective activity/detail page
- Locally uploaded PDFs open in a new browser tab
- Locally uploaded Doc/XLSX files show a download popup with "This file can't be previewed" message
- Default sorting is newest first by Created On
- Type column is sortable
- Permission-based visibility rules are enforced: contractor-uploaded files visible only to agency users, client-uploaded files visible only to agency users
- Project Managers see only files from their assigned projects
- System-generated documents in draft status are excluded from search results
9. Dependencies
Agency Portal Dependencies:
Module/System
Dependency Type
Impact if Unavailable
Project Management
Data dependency
Cannot search/display project data
Client Management
Data dependency
Cannot search/display client data
Contractor Management
Data dependency
Cannot search/display contractor data
File Management (Uploaded Files)
Data dependency
Cannot search/display uploaded file data
Documents & Forms (Invoices, Proposals, Contracts, Questionnaires)
Data dependency
Cannot search/display system-generated document data
Authentication System
Service dependency
Cannot enforce permission-based filtering
Brand Management
Data dependency
Brand filter non-functional
Brand Settings
Data dependency
Event type colored dots will not display correctly
Contractor Portal Dependencies:
Module/System
Dependency Type
Impact if Unavailable
Project Management
Data dependency
Cannot search/display project data
Contractor Assignment System
Service dependency
Cannot filter assigned projects
Authentication System
Service dependency
Cannot verify contractor access
10. References
- Figma Link: Click Here
No tickets linked — generate test cases directly from this FRD instead.