← FRD Management
20. Project Details_Email Center Module
Pixally CRM

Email Module

Email Center Module

Functional Requirement Document

BA & Ideation: Dakshraj Jhala

Reviewed By: KG (Project Manager)

Updated Date: 26 September 2025
Status: Approved

Version 1.0

Functional Requirements Document (FRD)

Email Thread Module

1. Module Overview

  • Module Name: Email Thread
  • Purpose: Centralized email communication management system for project-specific email conversations between team members, clients, and contractors with real-time threading, timezone handling, and cross-platform integration.
  • Business Goal: Enable seamless project-scoped email communication with advanced threading, attachment management, time-zone synchronization, and external email integration while maintaining complete conversation history and context across different time zones and platforms.

2. User Roles & Permissions

  • Client Portal Email Center: Refer - Click Here
  • Client Management Communication Tab: Refer - Click Here

3. User Flow

4. Functional Logic

4.1 Projectwise Email Center

  • When a user accesses the Email Center from Project A, only Project A emails are displayed. Switching to Project B displays only Project B emails. There is no cross-project visibility. Each email in the Email Center is scoped exclusively to the project it was created or received under.

4.2 Access Email Center (Agency Side)

  • An agency user can access the email center from two navigation paths
  1. Project details > Email center
  2. Client Profile > Communication tab > Project. Refer - Click Here
  • If there are no participants in the project, the user will not be able to send an email. To send an email, the user needs to add at least one team member or client
  • The Email Center will display the message: "No participants in this project. Add team members or clients to send emails." Clicking the New Email button in this state opens the compose window; clicking on the recipient field triggers the Invite Client pop-up.
  • The Agency Owner and Agency Admin can see all the emails in every project of an agency, even if they are not a recipient in the email
  • A team member can view only those emails that they have sent or in which they are a recipient

4.3 Default Emails

  • The emails that are sent by the system when a lead form is submitted will also display in the project's email center
  • All system-generated automatically sent emails and emails sent from automations will be displayed in the email center

4.4 New Email

  • The user can compose a new email using the “New Email” button, which will open the compose email screen from where the user can send an email to the client or team member
  • In the compose email section, the user can add recipients, enter a subject, write the body content using the smart text editor, use smart fields, apply a published email template, draft an email using ASK AI, add a brand-specific signature, and attach files from the library or local system
  • Recipient Selection
    • At least one recipient must be selected across the To, Cc, or Bcc fields combined
    • Only project participants (team members, clients, contractors) can be selected
    • The sender is not displayed in the recipient dropdown lists
    • By default client list should appear at the top list
    • Once a user is selected in any field (To/Cc/Bcc), they are automatically hidden from all other field dropdowns to ensure each participant appears in only one field
    • Invite Client Trigger Logic:
      • When all existing project participants have been manually selected across To/Cc/Bcc fields and the user clicks the "+" button, the "Invite Client" pop-up opens
      • Also triggers when no project participants exist in the project
    • Cc and Bcc fields are hidden by default, revealed by clicking the "Cc or Bcc" button
  • Email Subject
    • The user can enter the subject of the email, and can also use smart fields in the subject
    • Maximum 250 characters allowed in the subject field. The user cannot type beyond this limit.
    • If the user leaves the subject empty, the email will still be sent. However, when clicking on ‘Send,’ a warning pop-up titled ‘Send without a subject’ will be displayed.
  • Email content body
    • The user can enter the email body text using the smart editor or the Ask AI functionality
    • Maximum 10,000 characters allowed in the email body. The user cannot type beyond this limit.
    • If the user leaves the email content body empty, the email will still be sent. However, when clicking on ‘Send,’ a warning pop-up titled ‘Send without a body’ will be displayed.
    • Smart Editor functionality supports formatting, smart fields, and attachments. Features include: Undo, Redo, Change font size, Bold, Italic, Underline, Emoji, Link, Bulleted list, and Numbered list
    • Ask AI feature - Refer - Click Here
  • Smart Fields Logic
    • The Dynamic Smart field [Field Name] is inserted via dropdown selection in the email composition
    • Smart fields. Refer - Click Here
    • No manual entry needed: Smart fields pull live data from the project context
    • If there is no data context for the smart field, it will display the smart field as it is, without any project-specific data
    • The system identifies the current project context automatically since Email Center is project-specific
    • Recipients receive emails with populated data values, not smart fields
    • Multiple smart fields can be used in a single email
    • Data validation - The system ensures all smart fields have corresponding project data
  • Email Template Logic

Template Selection and Access:

Only published email templates from the agency are displayed in the template selection dropdown

If no published templates exist for the agency, the dropdown displays "No templates available."

Templates are available agency-wide across all brands and projects within the agency

Template Application Process:

When a user selects a template, the system populates both the subject line and email body fields

Template content replaces any existing content in the composition fields

Users can modify template content after selection without affecting the original template

Changes made during email composition are specific to that email only and do not update the stored template

Smart Fields Population from the Templates:

Smart fields automatically populate with project-specific data, and all template modifications made during composition are specific to that email only. Additional smart fields can also be added

Recipients receive emails with fully populated data values, not the smart field placeholders

  • Attachment Logic

Paperclip icon opens attachment pop-up with Library and Upload tabs

Upload Tab: Allows direct file upload with drag-and-drop functionality. Files are automatically attached to the email, but will not be saved to the Library module. Refer - Click Here

Library tab: Two sub-tabs (Images and Documents) for selecting existing files from the library module. Refer - Click Here

Images: Grid thumbnail view of library images allows multiple selection. If no images exist in the library, the Images tab displays "Your library is empty."

Documents: Table view with file details (name, size, upload date, uploader).If no documents exist in the library, the Documents tab displays "Your library is empty."

Each individual attachment can be up to 15 MB. Attachments are stored on the Pixally server and converted to links within the email. Because files are served as links rather than embedded directly, multiple attachments can be included without exceeding the email's payload size limit.

The total email size limit remains 15 MB. Since attachments are link-based, this limit applies to the overall email payload (body content, inline assets, etc.) and not to the referenced attachment files.

File Attachments from the local system are for that email only and will not be added/saved to the library

The upload button appears only in the Library tab, and validates the selection before attaching

Files selected from the Library are attached to the email after the upload button is clicked

The attachment can be removed from the email using the (x) icon per attachment

Template Attachment Handling:

Attachments embedded in the template are automatically included in the email

Template attachments count toward the 15 MB total email payload limit.

Users can add additional attachments up to the remaining space after template attachments are calculated (15MB total - template attachment size = available space for additional files)

Brand-Specific Signature Logic

Each user has signatures associated with different brands

The signature corresponds to the project's brand context, since each project is linked to a specific brand

When the user clicks the "Signature" button during email composition, the system automatically inserts the appropriate brand signature

Template Signature Integration:

    • If the selected template contains a signature smart field, the system automatically inserts the brand-specific signature of the user sending the email within the project's brand context
    • If the template contains a [Signature] smart field and the user has no brand signature configured for the project's brand, the email is sent without a signature. No error is displayed for this scenario.

Send Email

    • On click, the system validates all required fields and user-attached files, and displays the respective error messages if any issues are found.
      • If the subject field is empty, a “Send Without a Subject” confirmation pop-up is displayed.
      • If the body content field is empty, a “Send Without a Body” confirmation pop-up is displayed.
      • If both fields are empty, a common confirmation pop-up “Send Without Subject and Body” is displayed.
    • If there are no validation errors, the email is sent to the recipients.

Connection Loss Behavior:

    • If the user's internet connection is lost or a similar issue occurs during email composition, no email data is saved to local storage, session, or the database.
      • If the connection is lost and the user attempts to send the email, the user will receive an error notification. At this stage, the composed email content will not be cleared and will remain available in the composition window.
      • However, if the user reloads the browser, navigates away from the page, or closes the main window, the composed email content will be lost.

4.5 Email Delivery & Reply Logic

  • When the agency sends the email to project participants (team member, contractor, client), the team member and clients receive the email in TWO places:
    • Their external email inbox (e.g., xyz@gmail.com), which is the email address registered in their profile
      • If the email has more than one recipient, a note in the email will indicate that all replies in the thread will be shared with the specified participants and will also be recorded in the Project’s email center. The note will read: ‘All replies in this thread will be sent to [names of email recipients] and will also appear in the [Project Name] project.’
    • Their portal's project-specific Email Center
  • The contractor receives the email only on their external account (i.e., Gmail) because they do not have access to the Email Center in the Contractor Portal.
  • Recipients (team members, client) can reply from EITHER location:
    • Reply from Gmail/external email client: automatically routed back to the agency's project Email Center
      • The email will be sent to all recipients/participants from the thread to which the user is replying.
    • Reply from their portal Email Center: directly appears in the agency's project Email Center
    • The user can reply to all using the Reply All button. It opens the reply composition similar to Gmail. The original sender “From” will appear in the “To” field, and recipients in Cc will remain in the Cc field. This option is displayed only when the email has multiple participants
    • Reply All includes original To and Cc recipients only.
    • Bcc recipients are never included in Reply All and remain hidden. Bcc recipient details are not exposed to any other participant under any circumstance.

Bcc Reply Behavior:

  • When a Bcc recipient replies to an email from their external email client, their reply is sent only to the original sender. Bcc recipients are not revealed to other participants in the thread.

Relay Email Routing

Project ID and Agency ID embedded in outgoing emails

External replies are automatically routed to the correct project email center by using the Project & Agency ID

Cross-platform compatibility (Gmail, Yahoo, Outlook, etc.)

Unidentified senders (emails not associated with the project's participants) are labeled as '(Not a Member)' next to their email address in the email thread

External replies are displayed in a new thread

Email routing uses the Project & Agency ID to ensure replies reach the correct project Email Center

    • Emails are tied to participant user IDs for comprehensive tracking & ensure consistent participant identification across email threads

4.6 Email Threading

  • Emails are grouped by conversation thread
  • Most recent messages appear at the top of the conversation list (left side)
  • Reply-to functionality maintains thread context
  • User re-added to thread: If a user is removed from a conversation, they will no longer see new messages in that thread. However, if the user is added back in a later reply, they will have access to the entire conversation history, including previous messages, similar to Gmail’s behavior.
  • External replies from users who are not part of the project participants are displayed in the project email center as a new thread using Project & Agency ID and display "(Not a member)" text next to their email address
  • Replies to "(Not a Member)" emails are allowed. Users can reply to emails sent by non-members; those replies appear within the same conversation thread.
  • Read/unread status is tracked for each user who is part of the email thread (blue dot indicator for unread)
  • Cross-platform reply routing maintains thread integrity regardless of the reply source (external or portal)

4.7 Conversation Display

  • The conversation list shows ALL emails related to the project (both sent and received)
  • For all emails, it displays the actual sender's name and email address
  • Recipient Display Logic:
    • Single participant: Shows participant name
    • Multiple participants: Shows the first participant's name, profile, and "+X" count of the participants on hover display all participant names with email addresses
  • Read/unread status applies to all emails in the conversation thread
  • Conversations sorted by most recent activity (sent or received)
  • The project heading displayed at the top of the thread view shows the project name
  • Clicking a conversation in the left sidebar opens the full thread in the right panel. If a different conversation is already open, it is replaced by the clicked conversation. The clicked conversation is marked as read and the blue dot indicator is removed.

4.8 Timezone Handling Logic

  • In the Pixally Email Center, the timezone displayed will follow the global settings, while in external emails, it will follow the external email-configured timezone
  • The conversation list (left sidebar) shows relative time with specific rules:
    • Up to 24 hours: Display in hours format (1 hour, 10 hours, 23 hours)
    • After 24 hours: Display in date format as configured in the agency’s global settings
  • Individual email display (thread view) shows absolute timestamp: DD/MM/YYYY HH:MM AM/PM format (22/11/2021 12:26 PM) as configured in the agency’s global settings

4.9 Read/Unread Status Logic

  • The read/unread status will be maintained at the user level for both threads and individual emails
  • New emails or any new email reply to the thread are marked as unread with a blue dot indicator
  • Emails are marked as read when opened in the thread view or single email view
  • The project header "Emails" button displays an unread email count badge
  • Unread project emails should also appear in the user dashboard’s ‘Unread Messages’ section. This is maintained at the user level, meaning the emails will remain in that section until they are opened by the particular user
  • Read/unread status is maintained independently in the Pixally Email Center and external email inboxes. There is no bi-directional sync. Reading an email in the Pixally portal does not mark it as read in Gmail or any other external client, and vice versa.

4.10 Search Logic

  • The search input field has no character limit.
  • Real-time search across from/to emails, subject, and message content
  • Search results filter the conversation list in real-time
  • Search lists matching conversations in the left email panel
  • Search works across all emails in the project
  • If no matching search results are found, a ‘No results found’ message will be displayed

4.11 Delete Email Logic

  • On clicking the delete button for a conversation, a confirmation pop-up will be displayed. On confirmation, the entire thread will be permanently deleted for that particular user and it will remain as it is for the other users

After deletion:

  • The conversation is removed from the conversation list.
  • A success message is displayed.
  • The next available conversation is automatically shown in the right panel.
  • If no conversations remain after deletion, the empty state is displayed.

4.12 Additional Logic

  • When a project-related email is received, it is logged in the Activity section at the individual user level.
    • The entry will display:
      • Sender’s name and role (e.g., Nic Robinson (Contractor))
      • A message indicator
        • “sent you an email” (for a new email)
        • “replied to your email” (for a reply)
      • Date and time of the email
      • A Reply button
    • On clicking the activity entry (or the Reply button), the full email will open in the Project’s Email Center.
  • When a project-related email is received, it should appear in the Notification Centre
  • System maintains communication history threads and activity tracking (in the project’s activity tab) per user
  • Email tracking persists even if client/contractor email addresses change - new emails are routed to updated addresses while maintaining historical thread continuity
  • The Project’s Email Center will maintain the conversation history even if a team member, client, or contractor is removed from the project

4.13 Email usage across modules:

  • The email functionality is used to send the contract, proposal, questionnaires, invoice, client portal link, and lead form to the client or contractor (as applicable) from the project.
  • Emails sent for these modules will also be displayed in the Email Center.

5. Field Details & Validations

Compose Email Fields

Field Name

Type

Required

Validation Rules

Subject

Text input

NO

Max 250 characters. User cannot type beyond this limit. Empty subject allowed but triggers confirmation pop-up on send. Smart fields can be inserted.

Body

Rich text editor

NO

Max 10,000 characters. User cannot type beyond this limit. Empty body allowed but triggers confirmation pop-up on send. Supports smart fields, formatting, and attachments.

Attachment Pop-Up

Field Name

Type

Validation Rules

Library Tab

Tab button

Shows library content with Image and Documents sub-tabs

Upload Tab

Tab button

Shows the upload interface for direct file upload

Cancel

Button

Closes the attachment pop-up without saving

Attachment Pop-Up (Upload Tab Fields)

Field Name

Type

Required

Validation Rules

File Upload Zone

Drag & Drop Area

Conditional

- Active drop zone with cloud icon, or on click opens system file dialog to upload file

- Max 15 MB per email attachment

- Valid Image and file format

Click here to upload Text

Text Link

No

- On click, display the system file dialog to upload the supported file

- Auto-upload starts immediately when files are selected

Format & File Size Restriction Label

Help Text

Yes

Display: "Supported formats: .jpeg, .jpg, .webp, .png, doc, xls, and pdf (15 MB file size limitation)"

Attachment Pop-Up (Library Tab - Images Section)

Field Name

Type

Validation Rules

Image Sub-tab

Tab button

Shows a grid view of image thumbnails from the library

Image Thumbnails

Grid display

Displays images in grid format with thumbnails. Scrollable. On click, select image for attachment. Multiple selection allows

Upload Button

Primary action button

Attaches selected images to email, shows validation error if no image is selected

Attachment Pop-Up (Library Tab - Documents Section)

Field Name

Type

Validation Rules

Documents Sub-tab

Tab button

Shows a table view of documents from the library

Document Selection

Checkbox

Allows multiple selection

File Name

Text + Icon

Displays the document file name with the file type icon. Shows file extension (.pdf, .doc, .xls)

Size

Text

Displays the document size

Uploaded On

Date

Display the uploaded date of the file. Format: "MMM DD, YYYY" (e.g., "Jun 12, 2025")

Uploaded By

Text

Display the user name with the avatar image of the user who uploaded the file

Upload Button

Primary action button

Attaches selected documents to email, shows validation error if no documents are selected

6**. Success Message Handling**

Validation Scenario

Success Message

Email sent successfully

"Email sent successfully."

Email Deleted successfully

“Email deleted successfully.”

7**. Error Message Handling**

Field

Validation Scenario

Error Message

Recipients

No recipients in any field (To/Cc/Bcc)

"Please specify at least one recipient."

Subject

Exceeds 250 character limit

"Subject cannot exceed 250 characters."

Body

Exceeds 10,000 character limit

"Email body cannot exceed 10,000 characters."

Attachments

Total attachment size exceeds 15 MB

"Total attachment size cannot exceed 15 MB."

Attachments

Unsupported format

"Invalid file format"

Attachments

File upload failed

"Failed to upload attachment. Please try again."

Attachments

No files selected in the Library and on click attach button

"Please select at least one file."

Network

Connection lost during send

"Something went wrong."

General

Server error

"Something went wrong."

Search

No results found

"No conversation found."

Attachment Download

Download failed

"Failed to download the attachment. Please try again."

Delete Action

Delete failed

"Failed to delete email. Please try again."

8**. Edge Cases**

Scenario

Expected Behavior

No project participants exist

Show the "Invite Client" pop-up when clicking the "+" button in the recipient fields

All project participants already selected

Show the "Invite Client" pop-up when clicking the "+" button after all participants are manually selected

Attachment upload fails

Show error message, allow retry

The project has no email history

Display empty state with "No conversations yet" message and New Email button

The total attachment size exceeds the 15 MB limit

Block upload, show the error message

The user attempts to send an empty email

Allow sending (no validation required for empty subject/body)

Client/contractor email address changes

System maintains thread continuity using user ID tracking, routes new emails to updated addresses

Multiple participants in recipient fields

Display first participant name + "+X" count in conversation list

Template with signature field

Automatically populate with brand-specific signature for current user and project

No brand-specific signature exists

It will display “No signature found” error message

Removed participant replies to existing thread from external email

Reply routes to the project Email Center via Project & Agency ID. Sender is labeled "(Not a Member)" in the thread. Reply is visible to all current project participants.

9. Test Cases

10. Acceptance Criteria

  • Projectwise Email Center: When a user accesses the Email Center from Project A, only Project A emails display. Switching to Project B displays only Project B emails. No cross-project visibility.
  • Access Control: Agency Owner/Admin see all project emails; team members see only their own or where they are recipients; email center accessible via Project or Client Profile.
  • Default Emails: System/automation-generated emails also appear in the project’s email center.
  • New Email: Users can compose emails with recipients, subject, body, smart fields, templates, attachments, brand-specific signatures, and “Ask AI.”
  • Recipient Logic: At least one recipient required (To/Cc/Bcc); only project participants selectable; sender excluded; invite client triggered if no participants.
  • Subject/Body Validation: If subject is empty, display pop-up "Send without a subject?" with Cancel and Send buttons. If body is empty, display "Send without a body?" with Cancel and Send buttons. If both are empty, display "Send without subject and body?" with Cancel and Send buttons. Clicking Send proceeds with the email send. Clicking Cancel returns to composition.
  • Smart Fields: Auto-populate from project data; placeholders shown if no context; cannot be manually typed; recipients receive resolved values.
  • Templates: Only published templates available; populate subject & body; editable per email; smart fields resolve with project data.
  • Attachments: Each attachment up to 15 MB; attachments stored as links on Pixally server; template attachments count toward total email payload limit.
  • Brand Signature: Automatically applies brand-specific signature based on project context.If no signature exists, email is sent without one.
  • Send Email: Validations run; confirmations shown for empty subject/body; sends if no errors
  • Delivery & Replies: Recipients get emails in external inbox + portal (except contractors → external only); replies from either route into project Email Center via Project & Agency ID. When a recipient replies from an external email client (Gmail, Outlook, etc.), the reply is automatically routed to the correct project Email Center based on the embedded Project & Agency ID, appears in the existing thread, and the sender is matched to a project participant or labeled "(Not a Member)" if unrecognized.
  • Threading: Emails grouped by conversation; replies maintain thread context; non-members labeled “(Not a Member)”; re-added users see full history; read/unread tracked per user.
  • Bcc Privacy: Bcc recipients are never revealed to other participants. Bcc replies from external email go only to the original sender. Bcc recipients are excluded from Reply All.
  • Conversation Display: Shows sender, recipients (+count on hover), read/unread status, sorted by latest activity, with project heading.
  • Timezone Handling: Relative times in sidebar, absolute timestamps in thread view, formatted per agency global settings.
  • Read/Unread Logic: Blue dot for unread; clears when opened; unread count badges at project header and dashboard.
  • Search: Real-time search by sender, recipient, subject, or body; results filter conversation list; “No results found” if empty.
  • Delete Logic: Deleting a conversation removes it only for that user; others retain it.After deletion, the next conversation is shown in the panel. If no conversations remain, empty state is displayed.
  • Activity & Notifications: Project emails are logged in the Activity tab and Notification Center with sender, role, message, and reply option.
  • Persistence: Communication history is maintained even if participants are removed or emails are updated.
  • Cross-Module Use: Emails sent for contracts, proposals, questionnaires, invoices, lead forms, and client portal links also appear in the Email Center.

11. Dependencies

Module/System

Dependency Type

Impact if Unavailable

Project Management

Data dependency

Cannot determine project participants, no email access, participant selection fails

User Authentication

Service dependency

Cannot identify sender, access restrictions fail, timezone preferences unavailable

Library

Integration dependency

The "Upload from Library" option is unavailable, and the existing file selection is disabled

Relay Email Service

External service

External email routing fails, threading is broken, and cross-platform integration is lost

Smart Text Editor

Component dependency

Limited email formatting capabilities, reduced editor functionality

Contact Management

Data dependency

Cannot populate recipient lists, participant information missing

Notification System

Service dependency

Real-time updates unavailable, read/unread status sync fails

File Storage Service

External service

Attachment upload/download fails, and file management is unavailable

Database Service

Data dependency

Email storage/retrieval fails, and conversation threading is broken

Brand Management

Data dependency

Cannot fetch brand-specific signatures, signature insertion fails

Email Template System

Integration dependency

Template selection and population unavailable

OpenAI API

External service

AI content generation fails, Ask AI feature unavailable

Client Invitation System

Integration dependency

Invite Client pop-up functionality unavailable

12. References

Figma Design Link: Click here

Linked tickets (0)

No tickets linked — generate test cases directly from this FRD instead.

—