3. Agency Brand set up_
Pixally CRMFRD
Agency Brand Setup Module
Functional Requirement Document
BA & Ideation: Sooraj Panicker
Reviewed By: KG
Updated Date: 17 September 2025
Status: Approved
Version 1.0
Functional Requirements Document (FRD) - Brand Setup Module
1. Module Overview
- Module Name: Brand Setup Module
- Purpose: Multi-step wizard enabling agencies to create and configure brand identities within the CRM system, collecting essential brand information, visual assets, business details, and service configurations for use throughout the platform
- Business Goal: Establish consistent brand representation across invoicing, proposals, client communications, and all client-facing interfaces
2. User Roles & Permissions
Role
Key Permissions
Agency Owner
Full access to all brand setup features allows for the addition of brand-related data, including general information, theme, events, service selection, business details, service area information, and social media links.
Admin
Can perform a complete Brand Setup Operations
3. User Flow
Main Success Scenario:
- User accesses Brand Setup from Dashboard or Settings → Brands
- Completes 5-step wizard: Basic Info → Appearance → Events/Services → Business Info → Service Area → Social Media
- The system saves the brand configuration and makes it available system-wide
- Users can proceed to the dashboard or create additional brands
4. Field Details & Validations
Step 1: Basic Brand Information
Field Name
Type
Required
Validation Rules
Business Name
Text
Yes
100 characters, can have alphabets, numbers, and special characters
Business Website
URL
No
Valid URL format
Phone Number
Combined Input
Yes
Country code dropdown + phone number field, max 15 digits
Step 2: Customize Appearance
Field Name
Required
Validation Rules
Tooltip
Primary Logo
Yes
Supported formats are jpeg, .jpg, .webp, .png
Size- max 15 MB
Refer- Click Here
Secondary Logo
No
Supported formats are jpeg, .jpg, .webp, .png
Size- max 15 MB
Refer- Click Here
Brand Colors
Yes
By default, the system provides 9 preset color options. For additional flexibility, users can select custom colors using the built-in color picker.
--
Default cover photo
Yes
Supported formats are jpeg, .jpg, .webp, .png
Size- max 15 MB
A default header image is provided by the system in the Library. The users have the option to replace it.
–
Step 3: Events & Services
Field Name
Required
Validation Rules
Tooltip
Event Types
Yes
At least one is required. Max 50 events, including the custom entries
Refer - Click here
Custom Event Types
No
Allow only the alphabet. No special characters.
Cannot be duplicated.
--
Service Types
Yes
Photography / Videography / Content Creation
At least one is required.
--
Step 4: Business Information
Field Name
Required
Validation Rules
Search Business Address
Yes
- Based on the user’s input in the search bar, the dependent fields below (Street address, City, state/Province, Country, Zip code) are auto-populated.
- The user must search at least to the city level for auto-fill to trigger.
- All fetched values are from the Google Maps API.
- If any field is missing or incomplete, the user needs to edit or enter the data manually.
- If the ZIP/Postal code is not auto-fetched, the user can enter it manually. Alphanumeric, should not exceed 10 characters.
Step 5: Service Area Configuration
Field Name
Required
Validation Rules
Tooltip
Service Areas
Yes
Alphanumeric and special characters, Max 50 characters in one service area field
Refer - Click here
Step 6: Social Media Links
Field Name
Required
Validation Rules
No
Valid URL format, max 250 characters
No
Valid URL format, max 250 characters
No
Valid URL format, max 250 characters
No
Valid URL format, max 250 characters
Vimeo
No
Valid URL format, max 250 characters
YouTube
No
Valid URL format, max 250 characters
TikTok
No
Valid URL format, max 250 characters
Action button CTAs
CTA Name
Action
Next
Will redirect the user to the next page in the Brand setup.
Back
Navigate the user back to the previous page they accessed, while retaining all entered data to prevent any loss.
Finish
Completes the setup Process and redirects users to the set-up finished page
Add Additional Brand
This will be visible post-brand setup to redirect the user to create an additional brand
Open Dashboard
This will be visible post-brand setup to redirect users to the Dashboard
5. Error Message Handling
Step 1 - Basic Information
Field
Validation Scenario
Error Message
Brand Name
Empty submission
"Please enter your business name."
Too /long
"Business name cannot exceed 100 characters."
Brand Website
Invalid format
"Please enter a valid website URL."
Phone Number
Empty submission
"Please enter your phone number."
Invalid format
"Please enter a valid phone number."
Step 2 - Customize Appearance
Field
Validation Scenario
Error Message
Primary Logo
Empty submission
"Please upload a logo."
File too large
"Please upload a file under 15MB."
Header Image
File too large
" Please upload a header image under 15MB."
Step 3 - Events & Services
Field
Validation Scenario
Error Message
Event Types
None selected
"Please select at least one event type."
Service Types
None selected
"Please select at least one service type."
Events Selection
Selection exceeds the limit of 50 events
"You can only select up to 50 events."
Custom Events
Duplicate entry
"Event name already exists. Please add a different event name."
Step 4 - Business Information
Field
Validation Scenario
Error Message
ZIP/Postal Code
Empty
"Please enter the ZIP code."
Step 5 - Service Area
Field
Validation Scenario
Error Message
Service Area
None added
"At least one service area is required."
Service Area
Service area character exceeds the limit
"Service Area cannot exceed 50 characters."
Step 6 - Social Media
Field
Validation Scenario
Error Message
Any URL field
Invalid format
"Please enter a valid URL."
Any URL field
Exceeds length
"URL cannot exceed 250 characters."
General Errors
Scenario
Error Message
Session timeout
"Session timed out. Please log in again."
Server error
"Something went wrong."
Google Place API is unavailable
"Location service temporarily unavailable. Please try again later."
Success handling Message
General Success Messages
Scenario
Success Message
Brand setup completion
"Brand setup completed successfully!"
Brand details update
"Brand details updated successfully."
6. Functional Logic
6.1 When No Brand is Created
The users must create a brand before performing any action in the portal, as projects, events, invoices, proposals, agreements, questionnaires, emails, integrations (Stripe, QuickBooks), invite contractors and team members, and automations all depend on brand data. The users will be prompted to create a brand whenever they try to perform any of these actions.
6.2. Brand Creation Process
Step 1: Business Information
When an agency creates its first brand, the system auto-populates Business Name, Website, and Phone Number using agency data provided during the Sign Up > Agency onboarding, which users can review and edit. From the second brand onwards, no details are auto-fetched, and the users must enter all fields manually.
Step 2: Logos & Branding
Primary and Secondary Logos:
Primary Logo → The main visual mark of the brand. The users must upload a Primary Logo.
Secondary Logo → An alternate version of the brand’s logo.
- Crop Logo: The users can crop the logo after uploading, if required
- The Secondary logo is used consistently across all client-facing documents and throughout the system UI as the default identifier, appearing across multiple modules such as contracts, proposals, invoices, questionnaires, emails, brand settings, client/contractor portals, integrations, forms, events, project headers, dashboards, and other UI elements. When the Secondary logo is not uploaded, the Primary logo is used by default.
Brand Colors: The selected color scheme defines the brand’s look across the portal.
- Color Picker → Allows users to set brand colors either by dragging on the palette or by entering a hex code manually.
- Brand colors are used in client-facing elements such as Lead Forms, Proposal, Invoices, and the Client Portal (Login), ensuring a customized branded experience.
Header Image: A banner/cover image reinforcing brand identity.
- Header Images are used mainly in the Projects header image across agency, contractors, and client portals, and the Client-Facing Proposals and Questionnaires.
Step 3: Events, Custom Events, and Services:
Events:
- Events represent distinct occasions within a project, such as weddings, engagement ceremonies, rehearsal dinners, corporate shoots, etc. A project can have one or many events.
- The default Events list is provided by the system. The users can create custom events as per their business requirements.
- Custom Events: User-created events not included in the system defaults, allowing users to define unique event types for their operations.
- Event Type Management: The user must select at least 1 Event. System events can be unselected, while custom-created events can be deleted.
Services:
- Services represent the actual offerings delivered for each event.
- The services include photography, videography, and content creation.
- Services are linked to events, which in turn are part of a project. Multiple services can be linked to a single event.
Preview Display → In Events & Services, the first 4 events are shown; additional events appear in an “+n” format indicating the remaining count.
Impact Modules → Project & Event Management, Lead Form, Packages, Proposals, Contracts, Calendars & Availability, Automations, Contractor Management (Invite, Setup and Assign Contractor), Reports, Filters, and Brand Settings.
Step 4:Business Information (Address) → The agency’s registered office address, captured during brand setup and applied across documents (e.g., contracts, invoices).
Google Places Integration → Initially, only a search bar is visible; once a value is searched, fields like country, state, city, and zip code are auto-populated via the Google Places API along with the valid data, with manual input allowed for any missing details. For example, Zip code
Business Info is used in → Brand Settings, Lead Form, Proposals, Contracts
Step 5: Service Areas:
Service areas define the geographic regions where an agency or brand provides its offerings. These areas can be set up dynamically based on business needs.
- The user can create the same or different service areas per brand. Refer- Click Here
- Impact Modules: Project & Event Management, Lead Form, Packages, Proposals, Calendars & Availability, Automations, Contractor Management (Invite, Setup, and Assign Contractor), Reports, Filters, and Brand Settings.
General Points (for all the steps):
- Custom Appearance & Real-time Preview – While filling in details (Business Info, Color, Logo, Header Image, Custom Appearance, Social Media Links), users see a live preview on the same page.
- Navigation Control – Users cannot proceed to the next step until all required fields in the current step pass validation. They can navigate back using the Back button. Missing mandatory fields trigger inline error messages.
- Auto-save Functionality – Form data auto-saves as users fill it out, ensuring persistence so they can resume later if they leave midway.
- Progress Tracking – A progress indicator increases by 20% after each completed step, reaching 100% at the final step.
6.3 Post-Brand Creation Impact
Once a brand is created, it enables functionality across all modules in 6.1 Agency Brand set up
7. Edge Cases
Scenario
Expected Behavior
Duplicate brand name within the agency
Show warning: "Brand name already exists in your agency. Please choose a different name."
Session timeout during file upload
Auto-save draft data, show timeout message, require re-authentication to continue
Google Places API is unavailable
Display fallback message, allow manual address entry, and retry API connection
The user exits the setup mid-process
Save current progress, allow resume from the last completed step
Maximum file upload size exceeded
Show error before upload starts, suggest image compression
Duplicate custom event name
Highlight existing events, prevent addiction, and show "already exists" message
Network connectivity loss
Buffer form data locally, sync when connection restored, show connection status
Service area limit reached (50)
When the user clicks on "the Add another" button, show a limit message, and allow removal to add new ones
If a black color code is selected by the user
The text in the CTA must automatically change to white on the black CTA button and vice versa if the white color CTA is chosen.
8. Test Cases
Test Cases: Pixally Test cases - 01.04.25
9. Acceptance Criteria
- All form fields validate correctly according to the specified requirements
- No Brand: Users must create a brand before any action; the system prompts brand creation when blocked.
- Business Info: First brand auto-fills from onboarding; subsequent brands require manual entry.
- Logos & Branding: Primary logo mandatory, Secondary optional (used system-wide, fallback to Primary); brand colors, header image, and cropping supported.
- Events & Services: At least one event required; system + custom events supported; services linked to events/projects.
- Business Address: Captured via Google Places API with auto-fill + manual edits; used in contracts, invoices, and proposals.
- Service Areas: Define flexible service areas per brand; applied across projects, forms, proposals, automations, and reports.
- Data persists across sessions, and the browser refreshes. The default header image is applied when no image is uploaded
- The progress indicator shows the correct percentage at each step
- All error messages are displayed in the correct locations with proper formatting
10. Dependencies
Module/System
Dependency Type
Impact if Unavailable
Google Places API
External API
Manual address entry required, no auto-complete
User Authentication
Internal Module
Cannot access the brand setup, no permission validation
Dashboard Module
Internal Module
Cannot navigate back to the main interface
11. References
• Figma Design Link: Brand Setup UI Design
No tickets linked — generate test cases directly from this FRD instead.