9. Service Agreement_
Pixally CRM☑️ Service Agreement Listing & Automation
Service Agreement Listing
1 Module Overview
- Module Name: Service Agreement Listing & Auto-Generation (Sub-module of Contracts)
- Purpose: Automates the creation and organization of service agreements based on brand and service type configurations, providing a centralized listing for agencies to manage, edit, and publish agreement templates.
- Business Goal: Eliminate manual template creation by auto-generating agreements upon brand setup, and provide organized visibility of all agreements with role-based access control.
2. User Roles & Permissions
3. User Flow
- Click Here to view the detailed flow chart
4. Functional Logic
4.1 Service Agreement Information
4.1.1 Service Agreement Definition
- A Service Agreement is a legally binding document between an agency and a contractor that outlines the terms, conditions, and expectations for services to be rendered for a specific event or project.
- It establishes a formal working relationship by defining roles, responsibilities, deliverables, payment terms, and legal obligations before work begins.
4.1.2 Service Agreement Template
- A Service Agreement Template is a pre-configured, reusable document structure that serves as the foundation for generating service-specific agreements for contractors.
- Auto-Generated Templates: The system automatically creates one service agreement template per service type (Photography, Videography, Content Creation) configured during brand setup; each template is brand-specific and reusable across multiple contractors and events.
- Template Contents: Includes standard contract clauses, Smart Fields for dynamic data population (contractor name, event details, brand info), Input Fields for contractor-provided information, signature placeholders, and brand header with logo and contact details.
- Template Status: Templates exist in Draft (editable, not available for sending) or Published (finalized, available for automatic or manual sending
- For details on the sample template structure, refer to the link - Click Here
4.1.3 Service Agreement draft vs published logic
- Draft Status :
- Agreement is in editable mode; all sections (Logo, Address, Contract Body, Signature, Settings) can be modified.
- Not available for sending to contractors—neither manually nor automatically.
- Auto-send toggle ("Automatically Send to Contractors") remains disabled and cannot be enabled.
- Not linked to contractors when they are assigned to projects or events.
- Sample template content is pre-filled upon auto-generation; users can customize before publishing.
- Agreement does not appear in contractor assignment workflows.
- Published Status :
- Agreement is finalized and marked as ready for contractor assignment and signature.
- Available for both automatic and manual sending to contractors.
- Auto-send toggle can be enabled; when ON, agreement is sent immediately upon contractor assignment.
- Linked to contractors automatically when they are assigned to matching service types, if the auto-send toggle is on.
- Remains editable after publishing—content updates apply to future sendings only; already-sent agreements are unaffected.
- Signs count increments only when both contractor and agency complete signing.
4.2 Initial State & Auto-Generation
Initial State: When no brands exist, display: "No service agreements found. Please create a brand first to generate service agreements."
Auto-Generation Rules:
- Service agreements are auto-generated upon brand creation (no manual creation option)
- One agreement is created per brand + service type combination
- All agreements are created in Draft status with sample template content
- If a brand has multiple services selected, multiple agreements are generated for each service
4.3 Service Agreement Template Listing
- The Service Agreement tab under Templates → Contracts displays all auto-generated service agreements organized by brand and service type.
- Each auto-generated agreement appears in the Service Agreement listing in an initial Draft state.
- Service types are fetched from the Brand configuration (Photography, Videography, or Content Creation)
- Agency Owners and Admins have full visibility across all brands and can edit or publish service agreements
- Project Managers have restricted access based on brand-level permissions
- For Field Details & Validation rules - Click Here
4.3 Contractor Assignment Logic (Automation)
4.3.1 Automatic Agreement Assignment (Trigger Logic)
When a contractor is added to a project or event, the system automatically checks:
- Which service types has the contractor been assigned, and which agreements are published for the selected brand
- The system then links the matching agreement(s) to the contractor for that assigned project or event.
- Example:
- Jake Valentine: Assigned as Videographer → System matches and links the published Videography Service Agreement → Jake receives one agreement to sign.
4.3.4 Automatic vs Manual Sending of Agreements
- If the brand’s “Automatically Send to Contractors” toggle is ON, the system immediately sends the relevant agreement(s) to the contractor as soon as they are assigned to a project or event.
- If the toggle is OFF, the agreement(s) will not be sent automatically; the project owner must manually trigger the sending from the project workflow.
- The auto-send toggle remains disabled for Draft agreements and can only be enabled once the agreement is Published.
**5. Field Details & Validation
**5.1 Service Agreement Listing Display Fields
Field Name
Type
Validation Rules
Page Header
Text
Format: "Contracts"
Tab Selector
Toggle Tabs
- Options: "Client Contracts" & "Service Agreement"
Tab Description Tooltip
Informational Text
- Appears on hover/click on Service Agreement tab
- Displays: "Service agreements are contracts between you and your contractors, outlining the terms of your working relationship for each gig they shoot."
Brand Section Divider
Visual Separator
- Separates different brand groupings
Brand Section Header
Container
- Displays brand name with avatar/logo (e.g., "Emma Taylor", "Isabel Claudia")
Name Column
Text with Icon
- Displays "Service Agreement Name" as template title
- Includes document icon on the left
Status Column
Status Badge
- Displays "Draft" in (yellow badge) or "Published" in (green badge);
- Color-coded display
- Initially, all auto-generated agreements appear in Draft state
Service Type Column
Text Display
- Displays category of service (e.g., "Photography", "Videography", "Content Creation");
- Auto-fetched from brand setup selections
Signs Column
Number Display
- Shows total count of completed signatures (e.g., "64")
- Count increments only when both contractor(s) and agency have completed signing
- Partially signed or pending agreements are not included in the count.
Automatically Send to Contractors Column
Toggle Switch
- ON/OFF toggle with info icon (ⓘ);
- When ON: Orange/yellow toggle, auto-sends to contractors upon event assignment;
- When OFF: Gray toggle, requires manual sending;
- Button remains disabled when agreement on draft status
Info Icon (ⓘ)
Tooltip Trigger
- Circular info icon next to toggle;
- On hover displays explanatory tooltip
- Info icon tooltip: "When toggled ON, this service agreement is automatically sent to contractors for signing upon their assignment to an event."
Actions Column
Button Group
- Contains View icon (eye) and Edit icon (pencil);
- Icons displayed as circular buttons with a gray background
View Button
Icon Button
- Eye icon (👁); Opens read-only preview of service agreement;
- Available for both Draft and Published agreements
Edit Button
Icon Button
- Pencil icon (✏); Opens service agreement in edit mode
6. Success Message Handling
Validation Scenario
Success Message
Brand created with service types
No explicit message — Service agreements auto-generated and appear in listing instantly
Auto-send toggle turned ON
No explicit message — Toggle state updates in real-time with visual indicator (orange/yellow)
Auto-send toggle turned OFF
No explicit message — Toggle state updates in real-time with visual indicator (gray)
Agreement auto-sent to contractor
"Service agreement automatically sent to [Contractor Name]" (logged in Activity Tab)
7. Error Message Handling
Field
Validation Scenario
Error Message
Listing
No brands exist in the system
"No service agreements found. Please create a brand first to generate service agreements."
8. Edge Cases
Scenario
Expected Behavior
Brand deleted after agreements generated
Associated service agreements removed from listing; sent/signed agreements retained in project records for audit
Service type added to brand after initial setup
New service agreement auto-generated for the added service type in Draft status
Service type removed from brand
Existing agreement for that service type remains in listing; no auto-deletion to preserve historical data
Contractor assigned to event but agreement still in Draft
Agreement not sent (auto or manual); system requires Published status before sending
Multiple contractors with same service type assigned to one event
Each contractor receives their own instance of the same service agreement
Contractor has multiple service types matching multiple agreements
Separate agreement sent for each matching service type; each tracked independently
9. Test Cases
10. Acceptance Criteria
- Initial State Validation: Service Agreement listing displays "No service agreements found. Please create a brand first to generate service agreements." when no brands exist in the system.
- Auto-Generation on Brand Creation: Upon brand creation, the system automatically generates one service agreement per selected service type; all agreements appear in listings with Draft status and sample template content.
- Listing Organization: Service agreements are grouped by brand with collapsible sections; each entry displays name, status badge, service type, signature count, auto-send toggle, and action buttons.
- Status Display: Draft agreements show yellow badge; Published agreements show green badge; status updates reflect in real-time.
- Auto-Send Toggle Behavior: Toggle remains disabled for Draft agreements; can only be enabled after agreement is Published; ON state (orange) triggers automatic sending upon contractor assignment; OFF state (gray) requires manual sending.
- Role-Based Access: Agency Owners and Admins have full access to all brands; Project Managers see only agreements for their assigned brands; unauthorized access attempts show permission error.
- Action Buttons: View (eye icon) available for both Draft and Published agreements; Edit (pencil icon) opens builder for Draft agreements only.
- Contractor Assignment Logic: When a contractor is assigned to a project/event, the system matches the contractor's service type(s) with Published agreements for that brand; matching agreements are linked automatically.
- Automatic Sending: If auto-send toggle is ON and agreement is Published, system sends agreement to contractor immediately upon event assignment; action logged in Activity Tab.
- Multiple Service Types Handling: Contractors with multiple service types receive separate agreements for each type; each agreement tracked independently with its own status, timeline, and signature tracking.
- Brand/Service Type Updates: Adding a service type to existing brand generates new Draft agreement; removing service type retains existing agreement; deleting brand removes agreements from listing but preserves sent/signed records for audit.
11. Dependencies
Module/System
Dependency Type
Impact if Unavailable
Brand Management
Data dependency
Cannot auto-generate service agreements; listing remains empty with "create a brand first" message
General Settings (Service Types)
Data dependency
Cannot determine which agreements to generate per brand; service type column unavailable
Contractor Management
Data dependency
Cannot match contractor service types with agreements; assignment logic fails
Projects & Events
Integration dependency
Cannot trigger automatic agreement sending upon contractor assignment
Email Service
Integration dependency
Cannot send agreements automatically to contractors; auto-send functionality disabled
Team Management
Data dependency
Cannot validate user roles for access permissions; role-based access control fails
12. Reference
- Figma Design Link - Click Here
☑️ Agreement Builder
1. Module Overview
- Module Name: Service Agreement Builder (Sub-module of Contracts)
- Purpose: Provides a structured editor interface for customizing auto-generated service agreement templates, allowing users to configure branding elements, agreement content, smart fields, signature settings, and expiration rules before publishing for contractor use.
- Business Goal: Enable agencies to tailor agreement templates to their specific terms and branding while maintaining consistency through smart fields and enforcing compliance via signature validation and expiration controls.
2. Roles & Permissions
3. User Flow
- Click here to view the detailed user flow
4. Functional Logic
4.1 Agreement Builder — Editable Sections
4.1.1 Logo Section
- The brand’s logo is automatically pulled from the brand profile and placed at the top of the agreement.
- Users can customize how this logo appears within this specific agreement only. Customization options include:
- Alignment: Choose whether the logo appears on the left, center, or right.
- Size: Adjust the width and height of the logo in pixels.
- Any modifications made here do not affect the original brand settings; changes apply only to the specific agreement being created.
4.1.2 Address Section
-
This section is automatically filled with the brand’s key details:
- Brand Name
- Agency Owner Name
- Contact Number
- Address
- Website
-
The content is editable through a rich text editor, allowing the user to update formatting (bold, italic, underline, spacing, alignment).
-
Only users with the appropriate permissions—Admin or Agency Owner—are allowed to make changes to this section.
-
The purpose is to ensure consistency while still allowing formatting adjustments when needed.
4.1.3 Contract / Agreement Content Section
- This is the main body of the agreement and includes a full-featured rich text editor for drafting and customizing contract content.
- For detail functionality of the rich text editor, refer to the following link - Click Here
- The section is pre-loaded with a standard template. For the sample template format, refer to the link - Click Here
- Smart Field allows users to insert Smart Fields (auto-filled project, contractor, and brand data) and Input Fields (contractor-entered information required during signing)
- For detailed logic on Smart & Input fields, refer to the following link - Click Here
4.1.4 Signature Section
- This part of the agreement contains the signature placeholders required to finalize the document.
- By default, it includes the following fields:
- Contractor Name
- Agency Representative
- Signature Date
- During the drafting phase, these fields are locked and cannot be edited to maintain structure and compliance.
- This section only becomes editable when the agreement is being manually sent.
- At that point, the system unlocks the signature section and allows the user to assign who signs each field.
- There is a minimum requirement of one contractor signature and one agency signature, and these mandatory fields cannot be removed from the agreement.
4.5 Rich Text Editor Functionality
The Agreement Builder includes a full-featured rich text editor (CK Editor) for drafting and customizing contract/agreement content. The editor toolbar provides the following functionality:
4.5.1 History Controls
- Undo (↩): Reverts the last action; supports multiple undo levels; keyboard shortcut: Ctrl+Z
- Redo (↪): Restores the last undone action; supports multiple redo levels; keyboard shortcut: Ctrl+Y
4.5.2 Text Formatting
- Paragraph Styles (Dropdown): Provides text style options including Paragraph, Heading 1, Heading 2, Heading 3, etc.; applies block-level formatting to selected text
- Bold (B): Applies bold formatting to selected text; keyboard shortcut: Ctrl+B
- Italic (I): Applies italic formatting to selected text; keyboard shortcut: Ctrl+I
- Underline (U): Applies underline formatting to selected text; keyboard shortcut: Ctrl+U
4.5.3 Insert Elements
- Link (🔗): Inserts or edits hyperlink; requires valid URL format; can link to external pages
- Image (🖼 ▼): Inserts image into content; dropdown for image upload options; supports URL or file upload
- Table (⊞): Inserts table; allows configuration of rows and columns; supports table formatting and cell merging
- Block Quote (❝): Inserts block quote formatting; indents and styles text as quotation
- Code Block ({ }): Inserts code block for technical content; preserves formatting and spacing
- Media/Video (▶): Embeds video or media content; supports video URL embedding
- Emoji (☺): Opens emoji picker; inserts emoji at cursor position
4.5.4 List & Indentation
- Bulleted List (•): Creates unordered bulleted list; supports nested lists; click again to remove list formatting
- Numbered List (1.): Creates ordered numbered list; supports nested lists; auto-increments numbers
- Decrease Indent (⇤): Decreases indentation of selected paragraph or list item; moves content left
- Increase Indent (⇥): Increases indentation of selected paragraph or list item; moves content right
4.5.5 Smart & Input Fields
- Add Fields Button (+): Opens right-side panel with two tabs — Smart Fields (system-generated dynamic placeholders) and Input Fields (contractor/client-entered values); fields inserted at cursor position
4.5.6 Rich Text Editor Behavior
- Auto-Save: Content changes are retained in the editor until explicitly saved via "Save as Template" or navigating away triggers unsaved changes prompt.
- Copy-Paste Support: Supports pasting content from external sources (Word, web pages); formatting may be preserved or cleaned based on source.
- Keyboard Shortcuts: Standard shortcuts supported — Ctrl+B (Bold), Ctrl+I (Italic), Ctrl+U (Underline), Ctrl+Z (Undo), Ctrl+Y (Redo), Ctrl+A (Select All).
- Placeholder Insertion: Smart Fields inserted via "Add Fields" button appear as highlighted tags (e.g., [Event Name]) at cursor position.
- Date Format: Dates inserted via Smart Fields default to readable month-first style (e.g., "December 23, 2025").
- Content Sections: Users can create multiple sections with headings and body text; all content is fully editable.
- Character Limit: No enforced character limit for agreement/contract body content.
4.6 Input & Smart Fields — Logic
4.6.1 Smart Fields Definition
- Smart Fields are dynamic placeholder tags embedded within agreement templates that automatically pull and populate data from the system when the agreement is sent or viewed.
- Data Sources: Smart Fields fetch information from contractor profiles, event details, project assignments, and brand information.
- Auto-Population: Placeholders (e.g., [Event Name], [Contractor Name]) are replaced with actual system data, eliminating manual entry and ensuring accuracy.
4.6.2 Accessing Smart Fields
- Users can insert Smart Fields while editing the Agreement content.
- The “Smart Fields” button appears in the Rich Text Editor toolbar.
- Clicking it opens a settings panel on the right side of the screen, which contains two tabs — Input Field (for contractor-entered values) and Smart Field (for system-generated dynamic placeholders).
4.6.3 Smart Field Categories
- Smart Fields are grouped into categories so users can easily find relevant information. Each category pulls data directly from the system based on the contractor, event, or project assignment.
- For detail category list, refer to the link - Click here
4.6.4 Smart Field Behavior
- Users place the cursor inside the agreement body → click “Smart Fields” → open Smart Field tab → choose a category → select a field.
- A highlighted placeholder (e.g., [Event Name]) is inserted at the cursor position.
- Date format in the service agreement will default to a readable month-first style. Example December 23, 2025
- In the Draft Mode, Smart Fields appear as placeholder tags.
- When Sent / Viewed, the system automatically replaces placeholders with actual data pulled from the contractor profile and event assignment.
4.6.5 Input Field Definition
- Input Fields are fillable form elements embedded within the agreement that collect information directly from contractors during the signing process.
- Data Collection: Input Fields capture additional information not available in the system, such as contacts, special requirements, etc.
4.6.6 Input Fields Behaviour
- Input Fields collect extra information from the contractor during the agreement signing process.
- Each field can have Placeholder Text to guide the contractor on what to enter.
- Fields marked as Required must be filled before the contractor can submit their signature.
- All entered values are saved in the agreement record under “Information Collected.”
4.6 Signature Workflow Logic
- Signature fields are editable only during manual sending - When an agreement is manually sent, the signature section becomes editable, allowing the user to review and modify agency-side signature fields before sending.
- When Auto-Send is enabled, signatures are not editable. If the brand’s Auto-Send setting is ON, the agreement is sent immediately upon contractor assignment. In this flow, the signature configuration is locked and cannot be edited.
- Agency Owner is automatically assigned when Auto-Send - During Auto-Send, the system automatically fetches and assigns the primary Agency Owner as the agency signer by default.
- Additional agency signers cannot be added in Auto-Send - Since the agreement is sent instantly, the user has no opportunity to add or configure additional internal signers.
- Manual send allows full signature customization - When sending manually:
- Signature fields become editable.
- Default Primary Signer: When manually sending an agreement, the user who initiates the send (Agency Owner, Admin, or Project Owner) is automatically added as the default primary signer for counter-signature.
- Assign To Other Signers: The default signer can reassign the signing responsibility to other team members using the "Assign To" option; selecting another user transfers the primary signer role to them.
4.6.1 Manual Send Signature Workflow
- Agency Signatures — Editable & Flexible:
- Signature fields become fully editable when manually sending an agreement.
- The user who initiates the send (Agency Owner, Admin, or Project Owner) is automatically added as the default primary signer for counter-signature.
- The primary agency signature is mandatory and cannot be removed from the agreement.
- The default signer can reassign signing responsibility to other team members using the "Assign To" option; selecting another user transfers the primary signer role to them.
- Additional agency signers can be added as needed before sending.
- Contractor Signatures — Auto-Assigned & Locked:
- The system automatically pulls contractor information from the project or event assignment.
- Based on the service type(s) linked to the contractor, the system generates the required contractor signature fields without user input.
- These signature fields are locked — users cannot add, remove, or modify contractor signature fields.
- If multiple contractors share the same service type (e.g., multiple photographers), the system automatically creates separate signature fields for each contractor.
4.6.2 Auto-Send Signature Workflow
- Agency Signatures — System-Assigned & Locked:
- When Auto-Send is enabled, the agreement is sent immediately upon contractor assignment.
- The system automatically fetches and assigns the primary Agency Owner as the agency signer by default.
- Signature configuration is locked and cannot be edited.
- Additional agency signers cannot be added since the agreement is sent instantly.
- Contractor Signatures — Auto-Assigned & Locked:
- Same behavior as manual send — contractor signatures are automatically generated based on service type and project/event assignment.
- Signature fields remain locked and non-editable.
4.7. Assigning Signature logic
When default users need to transfer the primary agency signers, the system provides a flexible workflow to assign existing project team members.
4.7.1 Accessing Signature Settings
- Clicking on a signature field button opens the Signature Settings panel on the right side of the builder interface.
- Panel displays "Signature Settings" header with signature icon.
4.7.2 Assign To Dropdown
- Shows a dropdown labeled “Assign To” with a placeholder “Select signer”.
- Lists all project assigned team members with:
- Circular profile picture
- Full name
- “(Added)” tag if already assigned as a signer (cannot be re-selected).
- Ensures users can quickly identify who is already used and who is available.
4.8 Settings Agreement Expiration Configuration & Behavior
4.8.1 Configuration Settings (Admin / Agency Owner Only)
- The system provides a configuration option called “Turn on file expiration.”
- When enabled, the admin/agency owner can define how long an agreement remains valid.
- The expiration duration can be set in days and weeks, depending on the agency’s policy.
- This setting can be adjusted whether the agreement is still in Draft mode or already Published, allowing flexibility even after initial creation.
- For field details and validation rule, refer to the link - Click Here
4.8.2 Expiration Behavior (How the Countdown Works)
- The expiration countdown begins as soon as the agreement is sent to the contractor.
- This applies whether the agreement was sent automatically or manually (via project workflow).
- Once the expiration date is reached, the agreement becomes inactive.
- No further signatures can be added.
- Users cannot make any edits to the agreement.
- The agreement becomes read-only, ensuring compliance and integrity.
4.8.3 Post-Expiration User Experience
Agency User Behavior
- The agency team can still view the expired agreement.
- The system clearly labels the document with an “Expired” status tag for visibility.
- No actions (editing, resigning, resending, deleting) are available—only viewing and navigating through the agreement is allowed.
Contractor Behavior
- Contractors lose access to the expired agreement.
- When they attempt to open it, a blocking modal appears stating:
“This service agreement has expired. Please contact your agency for renewal.” - This ensures contractors are aware of the reason and directs them back to the agency.
4.8.4 Renewal Process (How to Proceed After Expiration)
- Expired agreements cannot be reactivated or reopened for signing. This prevents tampering and keeps the audit trail clean.
- To renew the agreement, the agency must send a new agreement instance from the project workflow.
- This creates a fresh copy of the agreement with a new expiration countdown.
- Smart fields populate based on the current project and contractor details.
- The original expired agreement remains stored in the system for audit purposes, maintaining compliance and traceability.
4.9 Top Action Bar
Once the draft service agreement is customized and ready, the top action bar provides users with three primary actions for finalizing and managing the agreement:
4.9.1 Preview:
- Opens a read-only version of the complete service agreement, allowing users to review layout, content, service-specific terms, and placeholders before finalization
- Access Points:
- From Listing: Users can access a preview directly from the Service Agreement listing page via the Preview action (eye icon).
- From Builder: Users can access a preview from the Builder edit mode by clicking the Preview button in the header.
4.9.2 Save as Template:
- Saves the current service agreement edits as a draft template, enabling users to revisit and continue editing later before publishing
- Save as Template option will be accessible only when the agreement is in Draft status.
4.9.3 Publish:
- Finalizes the service agreement, changes the status from Draft (yellow badge) to Published (green badge), and marks it as ready for contractor assignment and signature.
- Published agreements remain editable; content is not locked after publishing.
- Users can update content, Smart Fields, Input Fields, and signature configurations at any time.
- Edits to published agreements are saved and reflected immediately.
5. Field Details & Validation
5.1 Contract Builder Interface Display Fields
Field Name
Type
Validation Rules
Back Arrow
Navigation Button
- Top-left corner, returns to Contracts listing page
Contract Name Header
Text Display
- Shows entered Agreement title (e.g., "Photography Agreement")
Status Badge
Status Label
- Displays the status “Draft” or “Published”
Preview Button
Secondary Action Button
- Opens read-only preview of edited service agreement
Save as Template Button
Secondary Action Button
- Saves the edited content as draft template; Allows future editing
Publish Button
Primary Action Button
- Publishes the service Agreement and Marks it ready for client sharing
Contract Structure Panel
Collapsible Menu
- Clicking it opens a Left sidebar containing Logo, Address, Contract, Signature sections
Settings Icon
Navigation Button
- Opens Settings panel in left sidebar; Gear/cog icon
Logo Section
Logo
Displays brand logo; Clickable to show logo configuration options
Address Section
Rich Text editor
Shows brand contact information; Clickable to edit address details
Contract Section
Rich Text editor
Main content editing area; Highlighted when active
Signature Section
Signature block
Signature placeholder area; Clickable to configure signatures
Logo Image Display
Image Container
Shows brand logo in document; Centered by default; Max width constrained
Logo Alignment Options
Radio Buttons
Options: Left, Center, Right; Located in right panel when Logo is selected
Logo Size Inputs
Number Input Fields
Width and Height in pixels (e.g., "58px", "68px"); Located in right panel
Address Content Area
Rich Text Display
Shows brand name, owner name, contact number, email, address, website
Address Toolbar
Rich Text Editor Toolbar
Includes undo/redo, paragraph styles, bold, italic, underline, link options
Contract Content Area
Rich Text Editor
Main editable area for contract text; Full CK Editor functionality
Contract Toolbar
Rich Text Editor Toolbar
Full formatting options including paragraph styles, bold, italic, underline, strikethrough, link, image, table, lists, alignment
Add Fields Button
Toolbar Button
Located in contract toolbar; Opens Smart Fields and Input Fields panel on right
Example Agreement Heading
Text Display
Default heading in contract body; Editable via CK Editor
Instructional Text
Text Display
Format: "This is where you can add your custom contract text."; Editable placeholder
Overview Section
Text Block
Sample content section with heading and body text; Fully editable
Example Paragraph Headings
Text Display
Sample section headings (e.g., "Example Paragraph 1"); Editable
Signature Warning Message
Info Box
Light background with info icon; Text: "You'll be able to edit this signature field — or link it to specific clients and add additional signers — when you send the live contract."
Contractor Name Placeholder
Signature Field
Format: "[Client Name]"; Non-editable in builder; Italicized text
Date Placeholder
Signature Field
Format: "Date"; Non-editable in builder; Aligned right
Agency Owner Placeholder
Signature Field
Format: "[Agency Owner Name]"; Non-editable in builder; Italicized text
5.2 Settings Tab Fields
Field Name
Field Type
Description
Validation Rules
Settings Header
Text (Display)
Static text: "Settings"
Read-only
Set Expiration Date Label
Text (Display)
Section label for expiration configuration
Read-only
Turn on File Expiration
Toggle Switch
Enables or disables contract expiration functionality
Default: OFF; when ON, expiration fields become active
Expires In (Number)
Number Input
Numeric value for expiration duration
Required when toggle is ON; accepts positive integers only; minimum value: 1; maximum value: 365
Expires In (Unit)
Dropdown Select
Time unit for expiration period
Options: Days, Weeks, Months; default: Days; required when toggle is ON
After Sending Text
Text (Display)
Static text: "after sending to Contractor"
Read-only; provides context for expiration timing
6. Success Message Handling
Validation Scenario
Success Message
Logo alignment/size updated
- No explicit message — Changes reflect in real-time in the editor preview
Address section updated
No explicit message — Content updates instantly in editor
Agreement content saved
No explicit message — Content auto-saves; visual indicator confirms save
Smart Field inserted
No explicit message — Placeholder tag appears at cursor position instantly
Input Field added
No explicit message — Field placeholder appears in editor with configuration options
Additional agency signer added
No explicit message — New signature field appears in Signature Settings panel
Expiration settings configured
No explicit message — Settings saved and reflected in agreement details
Save as Template clicked
"Agreement saved as draft" — Agreement remains in Draft status for further editing
Publish clicked
"Agreement published successfully" — Status changes to Published (green badge)
7. Error Message Handling
Field
Validation Scenario
Error Message
Logo Section
Logo image fails to load from brand
"Unable to load brand logo. Please check brand settings."
Agreement Content
Content is empty on publish attempt
"Agreement content cannot be empty. Please add contract terms before publishing."
Smart Field
Selected field data unavailable
"Data for this field is not available. Please ensure the project/contractor is assigned."
Input Field
Required field not configured properly
"Please provide placeholder text for the required input field."
Signature Section
Attempt to remove mandatory signature
"This signature cannot be deleted. At least one contractor and one agency signature are required."
Agency Signer
Duplicate signer added
"This team member has already been added as a singer."
Expiration Settings
Invalid duration entered
"Please enter a valid expiration duration."
Publish
Agreement has validation errors
"Please resolve all errors before publishing."
**
8. Edge Cases**
Scenario
Expected Behavior
Brand logo deleted after agreement created
Agreement retains last saved logo; placeholder displayed if logo unavailable
Brand details updated after agreement created
Existing agreement retains original data; changes apply only to newly created agreements
Smart Field inserted but source data deleted
Field displays blank or placeholder text when agreement is sent/viewed
User exits builder without saving
Unsaved changes are lost; system may prompt "You have unsaved changes" before exit
Expiration set to past duration (e.g., 0 days)
System rejects invalid input; minimum valid duration enforced
Agreement published with empty Input Fields
Allowed — Input Fields remain blank for contractor to fill during signing
Multiple users editing same agreement simultaneously
Last save overwrites previous; no real-time collaboration support
Contractor unassigned after agreement sent
Sent agreement remains valid; contractor retains access until expiration or completion
Agency Owner removed from team after being assigned as signer
Signature field retained; system flags for reassignment before sending
Agreement content exceeds maximum character limit
System displays warning; content must be reduced before saving/publishing
Publish attempted with no signature fields
Error displayed: "At least one contractor and one agency signature are required."
9. Test Cases
10. Acceptance Criteria
- Builder Access: Edit icon (pencil) opens builder for Draft agreements only; Published agreements show View icon only; "Review & Send" from project workflow opens builder in edit mode for manual sending.
- Logo Section: Brand logo auto-loads from brand profile; alignment (left/center/right) and size (width/height in px) configurable; changes apply to this agreement only without affecting original brand settings.
- Address Section: Auto-populated with brand details (name, owner, contact, email, address, website); editable via rich text editor; edit access restricted to Admin and Agency Owner only.
- Agreement Content: Pre-loaded with sample template; full CK Editor functionality available; Smart Fields and Input Fields insertable via "Add Fields" button; content cannot be empty on publish.
- Smart Fields: Inserted as placeholder tags in Draft mode; auto-populate with live data when sent/viewed; grouped by categories (Project, Client, Company, etc.); blank displayed if source data unavailable.
- Input Fields: Configurable with placeholder text; "Required" checkbox enforces completion before contractor signature; entered values saved under "Information Collected."
- Signature Section: Locked during drafting; editable only during manual send; minimum one contractor + one agency signature required; mandatory signatures cannot be removed.
- Contractor Signatures: Auto-assigned from project/event assignment; locked and non-editable; multiple contractors with same service type generate separate signature fields.
- Agency Signatures: Agency Owner mandatory and auto-assigned; additional signers addable via "+ Add Signature" (manual send only); "Signature Required" checkbox available for additional signers only.
- Auto-Send vs Manual Send: Auto-Send (toggle ON) sends immediately with Agency Owner signature only — no edits allowed; Manual Send unlocks signature fields for customization before sending.
- Expiration Settings: Configurable in Draft or Published status by Admin/Agency Owner; duration set in days/weeks/months; countdown starts on send; expired agreements become read-only.
- Post-Expiration Behavior: Agency can view expired agreements with "Expired" tag; contractors see blocking modal with renewal message; resend creates new instance with fresh expiration.
- Top Action Bar: Preview opens read-only view; Save as Template retains Draft status; Publish locks agreement, changes status to Published (green badge), and enables contractor assignment.
- Validation on Publish: Empty content blocked; missing mandatory signatures blocked; validation errors display inline and must be resolved before publishing.
11. Dependencies
Module/System
Dependency Type
Impact if Unavailable
Brand Management
Data dependency
Cannot fetch brand logo, name, and contact details for agreement header and address section
General Settings (Service Types)
Data dependency
Cannot determine service type for agreement template; Smart Field categories unavailable
Projects & Events
Data dependency
Cannot populate project/event Smart Fields; contractor assignment unavailable
Contractor Management
Data dependency
Cannot auto-assign contractor signatures; contractor Smart Fields unavailable
Team Management
Data dependency
Cannot fetch agency team members for additional signer selection
Email Service
Integration dependency
Cannot send agreements to contractors (auto or manual)
CK Editor
Integration dependency
Agreement content editing unavailable; Smart Fields and Input Fields cannot be inserted
12. Reference
- Link - Click Here
☑️ Use Service Agreement in Project
1. Module Overview
- Module Name: Use Service Agreement in Project
- Purpose: Enables manual sending of service agreements to contractors through the project workflow when auto-send is disabled, agreements have expired, or revised agreements need to be sent. Provides a guided process for selecting, reviewing, editing, and sharing agreements via email or direct link.
- Business Goal: Ensure contractors receive service agreements even when automation is not applicable, provide flexibility to review and customize agreements before sending, and offer multiple sharing options (email or link) to accommodate different communication preferences.
2. Roles & Permissions
3. User Flow
- Click Here to view the detail user flow
4. Functional Logic
4.1 Manual Sending Workflow
When the “Automatically Send to Contractors” toggle is OFF, or when an agreement has expired, all service agreements must be sent manually by the user. The system provides a guided workflow for selecting, reviewing, and sending agreements
4.1.1 Primary Agency Signer Determination
- Automated Sending: When sending contracts through automation, the Agency Owner automatically becomes the primary signer for counter-signature.
- Manual Sending: When sending contracts manually, the user who shares the contract (Agency Owner, Admin, or Project Owner) becomes the primary signer for counter-signature.
- Reassign to Other Team Members: The default signer can reassign the signing responsibility to other team members using the "Assign To" dropdown; selecting another user transfers the primary signer role to them.
4.1.2 Sending Service Agreement from Project Details
- Project Details> Contractors Tab
- Users can send service agreements independently from the Project Details → Files/Documents → Documents & Forms tab.
- Clicking the “+” icon opens the Add New Document modal, where users select Contract → Service Agreement.
- The system displays all applicable service agreements grouped by event, showing contractor details, agreement name, expiration info, and a “Review & Send” button.
- Users can open Review & Send to preview the agreement, verify Smart Fields, and make allowed edits before sending.
- Once reviewed, the user sends the agreement directly to the contractor; the shared agreement appears in the files & documents listing
4.1.3 Send Eligibility & Resend Logic
- Never Sent (Manual Sending): When an agreement has not been sent before, the user will always see an active "Review & Send" button. This allows the user to open the agreement, review the content, and send it for the first time.
- Auto-Sent Agreements: If the service agreement was automatically sent by the system (because Auto-Send was turned ON), the card shows "Automatically Sent on [Date]" with a "Review & Send" button available for resending.
- Manually Sent Agreements: When a user manually sends an agreement, the card displays: "Sent on [Date] • Expires on [Date]" with a "Review & Send" button available for resending at any time.
- Resend Available Anytime: Regardless of whether the agreement was sent manually or automatically, users can resend the agreement at any time using the "Review & Send" button.
- Resend Behavior — Unsigned Agreements: When a user resends an agreement that has not been signed, the previously shared version automatically expires and becomes invalid; the contractor receives the new agreement with a fresh expiration period.
- Resend Behavior — Signed Agreements:
- If the previously shared agreement was already signed by the contractor, it remains viewable in the system for audit and record-keeping purposes.
- Upon resend, signature icons in project details and calendar list view are reset to greyed out (unsigned state), requiring fresh signatures.
- The contractor is notified about the newly presented agreement and must sign the new version.
4.1.4 Final Review & Sending
- Pre-Send Preview - Before sending, users can click Preview to see the exact contractor-facing version of the agreement, formatting, actual relevant fetched data of smart fields, and assigned signature fields.
- Share Contract Modal via email - When proceeding to send, the Share Contract modal opens, allowing users to configure:
- Email To: It displays project participants, prefilled with assigned contractors, while allowing users to add or remove recipients via a searchable multi-select.
- Subject: Editable email subject line.
- Message: Rich text email body with formatting tools.
- Template: Optional selection of predefined email templates.
- Send Option - Choosing Send delivers the agreement directly via email. The contractor receives a “Get Started” button that opens the agreement for review and signing.
- Copy / Generate Link - Users can create or copy a unique, tokenized shareable link. Refer to the link for more detailed logic - Click here.
- Email Preview Before Sending - Users can view a complete email preview—showing Smart Fields, formatted message, and selected recipients—to confirm accuracy before final delivery.
4.2.1 Generate Link Logic
- Initial Generation: Clicking "Generate Link" shows a confirmation modal; upon confirmation, the system creates unique tokenized URLs for each recipient/signer.
- Unique Links Per Recipient: Each link is tied to a specific signer with their profile, name, and email displayed — ensuring individual tracking, personalized access, and audit trail.
- Post-Generation Access: After links are generated, the button changes from "Generate Link" to "Copy Link"; users can reopen the Share Link modal anytime to copy and share links via alternative channels (WhatsApp, SMS, Slack, etc.).
- Link Expiration: Generated links remain active until the agreement is completed or expires (based on configured expiration settings).
- Agreement Activation: The moment the link is generated, the agreement becomes active in the system; users can share the link directly without sending an email, providing an alternative delivery method.
- Once the link is activated It will be displayed in agency side and contractor portal in documents sections and Activity
4.3 Post-Sharing Impact
Once a service agreement is shared, the system automatically updates all relevant sections for both the agency and contractor.
4.3.1 Project Details — Activity Tab
- Every action related to the agreement is logged as a timeline entry (created, sent, viewed, signed, completed, expired).
- Each log entry includes a timestamp, the user’s profile image, and a View Contract shortcut.
4.3.2 Project Details — Files/Documents Tab
- The agreement sent through email or link appears in the Documents & Forms list with details such as name, type, created date, and recipient.
- Users can quickly redirect to Agreement View to Preview status, Download PDF or Delete using the kebab menu.
4.3.3 Project Details — Agreement Details View
- From Activity or Files/Documents, users can open the full Contract Details screen.
- The header shows the agreement name, its status, and options like Download PDF or Countersign.
- The Signers section shows each signer’s photo, name, status (Signed/Pending), and last viewed time.
- All input fields completed by the contractor (venue, address, contact details, etc.) are displayed.
- A chronological File Activity log records every event related to the agreement.
4.3.4 Contractor Portal — Dashboard & Event Details
- The contractor sees the shared agreement in their dashboard, event details & Files/Documents tab with a clear status indicator.
- They can open, review, and sign it directly from their portal.
- After signing, they see Signed on [Date] and can download the PDF.
- If the agreement expires before signing, they are shown: “This service agreement has expired. Please contact your agency for renewal.”
4.3.5 Agency dashboard - Pending Contractor Widget
- After service agreements are sent to contractors, the dashboard displays a “Pending Contractor Agreements” widget. This widget provides the agency with quick visibility into which contractors with which project still have outstanding agreements awaiting signature.
- The widget lists all contractors whose agreements have been sent but are not yet signed. Each entry represents a pending action and helps the agency easily identify delays or follow up where necessary.
- The widget updates automatically based on agreement status. As soon as a contractor completes and signs their agreement, they get removed from the pending list.
- Agency Owners can send manual reminder emails to contractors directly from the Pending Contractor Agreements widget, prompting them to review and sign pending agreements and helping ensure timely completion.
5. Field Details & Validation
5.1 Add New Document Modal
Field Name
Type
Validation Rules
Modal Header
Text
- Format: "Add New Document"
Document Type Tabs
Tab Navigation
- Options: Invoice, Proposal, Contract, Questionnaires. By default appears in contract
Search Bar
Text Input
- Placeholder: "Search"; filters agreements by name
Contract Sub-Tabs
Tab Navigation
- Options: Client Contract, Service Agreement
Event Section Header
Collapsible Container
- Displays event name with color indicator (e.g., "Rehearsal Dinner", "Wedding", "Engagement Photoshoot")
Contractor Profile
Image + Text
- Displays contractor profile picture, name, and role icon
Contractor Role
Text Badge
- Displays service type (e.g., "Photographer", "Videographer")
Agreement Name
Text with Icon
- Displays document icon + agreement title (e.g., "Service Agreement Name")
Expiration Info
Text Display
- Format: "Expires in [X] weeks after sending to recipient" or "No expiration date" or "Expiration date: [Date]"
Review & Send Button
Primary Action Button
- Yellow/orange button; enabled when agreement is eligible for sending
Automatically Sent Label
Status Label
- Gray text; displays "Automatically Sent" when auto-send was triggered
Cancel Button
Secondary Action Button
- Closes modal without action
5.2 Review & Edit modal
- For review and edit modal, refer to the link - Click Here
5.2 Share Contract Modal — Email Sharing
Field Name
Type
Validation Rules
Modal Header
Text
- Format: "Share Service Agreement"
Close Icon
Icon Button
- "X" icon; closes modal without sending
Email To
Multi-Select Input
- Pre-filled with assigned contractor email; displays as removable chip with "X" icon
Add Recipient Icon
Icon Button
- "+" icon; opens dropdown of project participants
Recipient Dropdown
Dropdown List
- Displays available contacts (e.g., Jenny Wilson, Devon Lane, Marvin McKinney, Darrell Steward, Leslie Alexander, Cody Fisher); searchable
Subject
Text Input
Placeholder: "Enter the subject"; editable field for email subject line
Message Body
Rich Text Area
Placeholder: "Type your message"; supports formatted text input
Get Started Button
CTA Preview
Dark button displayed within message area; shows preview of contractor's call-to-action
Template Dropdown
Dropdown Select
Label: "Template"; allows selection of pre-configured email templates
Formatting Toolbar
Icon Button Group
Text formatting (A), Link icon (🔗), Team mention (👥), Attachment icon (@)
Copy Link
Text Button
Bottom-left; opens Generate Link flow if not generated, or copies existing link
Preview Button
Secondary Action Button
Opens email preview modal showing exact recipient view
Send Button
Primary Action Button
Yellow button with dropdown arrow; sends agreement to selected recipients
5.3 Email Preview Modal
Field Name
Type
Validation Rules
Modal Header
Text
Format: "Preview"
Header Icons
Icon Buttons
Mobile view icon, Desktop view icon, Comment icon
Close Icon
Icon Button
"X" icon; closes preview modal
Recipient Line
Text
Format: "To: [Recipient Names]" (e.g., "Emma Johnson, Mark Mathew")
Email Subject
Text (Bold)
Displays configured subject (e.g., "Wedding Contract")
Greeting
Text
Personalized greeting (e.g., "Dear Emma and Mark,")
Email Body
Text Display
Shows message with populated Smart Fields (e.g., event date, location)
Sender Signature
Text Block
Displays sender name, title, and company (e.g., "Thanks, John Cherian, ABC Photographers")
Get Started Button
CTA Button
Dark button; preview of what contractor will click to access agreement
5.4 Send Confirmation Modal
Field Name
Type
Validation Rules
Success Icon
Visual Indicator
Green checkmark icon with badge styling
Confirmation Message
Text
Format: "Contract Sent"
Modal Behavior
Auto-Action
Modal auto-closes after 2-3 seconds or dismisses on click outside
5.5 Generate Link — Field Details
Field Name
Type
Validation Rules
Generate Link / Copy Link
Text Button
Bottom-left of Share Contract modal; displays "Generate Link" if no links exist; changes to "Copy Link" after generation
Confirmation Modal Header
Text
Format: "Generate Link"
Close Icon
Icon Button
"X" icon; closes modal without generating
Confirmation Message
Info Text
Displays: "Your file will then become accessible to all members who are actively involved in the project."
Cancel Button
Secondary Action Button
Text button; closes modal without action
Generate Link Button
Primary Action Button
Yellow button; confirms and generates unique links for all recipients
Share Link Modal Header
Text
Format: "Share Link"
Security Notice
Info Text
Displays: "Links are unique for each recipient. Make sure that the intended recipients/signers are the only ones accessing the document through their link."
Individual Links Section
Section Header
Format: "Individual Links"
Recipient Profile Picture
Image
Displays recipient's profile photo
Recipient Name
Text (Primary)
Displays full name (e.g., "Monica Benton", "Nick Robinson")
Recipient Email
Text (Secondary)
Displays email below name (e.g., "monica_be@gmail...", "nick_9760@gmail...")
Unique Link URL
URL Text Field
Displays individual URL
Copy Link Button
Action Button
Per-recipient button; copies individual link to clipboard
Done Button
Primary Action Button
Yellow button; closes modal and returns to Share Contract
6. Success Message Handling
Validation Scenario
Success Message
Agreement sent via email
"Contract Sent" — confirmation modal with green checkmark icon
Link generated successfully
No explicit message — Share Link modal opens displaying unique links for each recipient
Link copied to clipboard
No explicit message — Link copied; visual feedback via button state change or tooltip
Email preview loaded
No explicit message — Preview modal displays formatted email with populated Smart Fields
Recipient added successfully
No explicit message — Recipient appears as removable chip in Email To field
Recipient removed
No explicit message — Chip removed from Email To field instantly
7. Error Message Handling
Field
Validation Scenario
Error Message
Email To
No recipient selected
"Please add at least one recipient to send the agreement."
Email To
Invalid email format entered
"Please enter a valid email address."
Subject
Subject field left empty
"Please enter a subject line."
Send
Agreement not in Published status
"This agreement must be published before sending."
Send
Contractor not assigned to event
"No contractor assigned to this event. Please assign a contractor first."
Generate Link
Link generation fails
"Unable to generate a link. Please try again."
Copy Link
Copy action fails
"Failed to copy the link. Please try again."
Email Delivery
Email service unavailable
"Unable to send email. Please try again later."
Preview
Preview fails to load
"Unable to load preview. Please try again."
Agreement Access
Agreement expired
"This service agreement has expired. Please resend with a new expiration timeline."
8. Edge cases
Scenario
Expected Behavior
Agreement sent but contractor email bounces
Agreement status remains "Sent"; activity log records delivery failure; user can resend or use Generate Link as alternative
User closes Share Contract modal before sending
No agreement sent; no activity logged; user can reopen and send later
Multiple recipients added but one email invalid
System validates on Send; inline error shown for invalid email; valid recipients retained
Link generated but recipient never accesses it
Link remains active until agreement expires; agency can track "Not Viewed" status in Agreement Details
Contractor removed from event after agreement sent
Sent agreement remains valid; contractor retains access until completion or expiration
Agreement expires while contractor is viewing
Contractor cannot submit signature; shown expiration modal: "This service agreement has expired. Please contact your agency for renewal."
User attempts to resend active (non-expired) agreement
"Review & Send" button disabled; system prevents duplicate sending until expiration
Generated link copied but Share Link modal closed accidentally
Links persist; user can click "Copy Link" again to reopen Share Link modal and access existing links
Email service down during send attempt
Error displayed: "Unable to send email. Please try again later."; user can retry or use Generate Link alternative
Same recipient added multiple times
System prevents duplicate; recipient chip appears only once
**
9. Test Cases**
10. Acceptance Criteria
- Access & Navigation: Manual sending accessible via Project Details → Files/Documents → Documents & Forms → "+" icon; Add New Document modal opens with Contract → Service Agreement tab displaying agreements grouped by event.
- Agreement Display: Each agreement card shows contractor profile picture, name, service type badge, agreement name, expiration info, and action button ("Review & Send" or "Automatically Sent" label).
- Send Eligibility Logic: Never sent → "Review & Send" enabled; Auto-sent → locked with "Automatically Sent on [Date]" label; Manually sent & active → locked with "Sent on [Date] • Expires on [Date]"; Expired → "Review & Send" re-enabled.
- Review & Edit: Clicking "Review & Send" opens agreement builder; users can verify Smart Fields, make instance-level edits, configure signatures, and preview before proceeding to send.
- Resend Behavior: Resending expired agreement creates new instance with fresh expiration timeline; original expired agreement retained for audit; no duplicate sends allowed for active agreements.
- Share Contract Modal: Email To pre-filled with assigned contractor (removable chip); additional recipients addable via "+" dropdown; Subject and Message fields editable; Template dropdown and formatting toolbar available.
- Email Preview: Preview button displays exact email layout with populated Smart Fields, recipient list, subject, formatted message, sender signature, and "Get Started" CTA button.
- Email Sending: Send button delivers agreement to selected recipients; contractor receives email with "Get Started" CTA; "Contract Sent" confirmation modal displayed; activity logged; expiration countdown begins.
- Generate Link: "Generate Link" displays confirmation modal; upon confirmation, unique tokenized URLs created per recipient; security notice displayed; button changes to "Copy Link" after generation.
- Share Link Modal: Displays recipient profile, name, email, and unique URL for each signer; individual "Copy Link" buttons available; "Done" closes modal; links shareable via WhatsApp, SMS, Slack, etc.
- Link Behavior: Links remain active until agreement completed or expired; links non-transferable and tied to specific signer; system verifies recipient identity before granting access.
- Post-Send — Activity Tab: All actions logged (created, sent, viewed, signed, completed, expired) with timestamp, user profile, and "View Contract" shortcut.
- Post-Send — Files/Documents Tab: Sent agreement appears in Documents & Forms list with name, type, created date, recipient; kebab menu offers Preview, Download PDF, Delete options.
- Post-Send — Agreement Details View: Header shows agreement name, status badge, Download PDF, and Countersign options; Signers section displays photo, name, status (Signed/Pending), last viewed time; Information Collected shows contractor-submitted data; File Activity logs all events.
- Contractor Portal: Sent agreement visible in contractor's Dashboard and Event Details → Files/Documents; contractor can view, review, sign, and download PDF; expired agreements show blocking modal with renewal message.
- Validation Rules: Send blocked if no recipient, invalid email, or empty subject; only Published agreements can be sent; contractor must be assigned to event before sending.
11. Dependencies
Module/System
Dependency Type
Impact if Unavailable
Service Agreement Builder
Data dependency
Cannot access agreement templates for review and edit; "Review & Send" functionality unavailable
Service Agreement Listing
Data dependency
Cannot retrieve published agreements; Add New Document modal shows empty state
Projects & Events
Data dependency
Cannot group agreements by event; contractor-event assignments unavailable
Contractor Management
Data dependency
Cannot fetch contractor details (profile, name, service type); recipient pre-fill unavailable
Brand Management
Data dependency
Cannot populate Smart Fields with brand information; agreement content incomplete
Email Service
Integration dependency
Cannot send agreements via email; users must rely on Generate Link as alternative
Team Management
Data dependency
Cannot fetch project participants for recipient dropdown; additional recipients unavailable
General Settings (Expiration)
Data dependency
Cannot apply expiration rules; agreements remain active indefinitely
Activity Log Service
Integration dependency
Cannot record send, view, sign events; audit trail unavailable
Contractor Portal
Integration dependency
Contractor cannot access, view, or sign shared agreements
PDF Generator
Integration dependency
Cannot generate downloadable PDF version of signed agreements
Link Generation Service
Integration dependency
Cannot create unique tokenized URLs; "Generate Link" functionality unavailable
12 Reference
- Figma Link - Click Here
☑️ Sign Contract - Contractor side
1. Module Overview
- Module Name: Sign Service Agreement — Contractor Side
- Purpose: Enables contractors to view, review, and sign service agreements shared by the agency through their Contractor Portal. Provides a guided signing experience with options to type or draw signatures, ensuring legal acknowledgment before commencing work on assigned events.
- Business Goal: Ensure contractors formally accept agreement terms before starting work, provide a seamless digital signing experience, maintain legal validity through electronic signature capture, and trigger sequential counter-signing workflow upon contractor signature completion.
2. Roles & Permissions
3. User Flow
- Click Here to view the detailed user flow
4. Functional Logic
4.1 Agreement Visibility in Contractor Portal
Once a service agreement is shared, it becomes visible to the contractor in multiple locations:
- Dashboard — Service Agreements Widget: Displays all pending agreements grouped by event name with date/time and "Sign Now" button.
- Event Details — Service Agreement Section: Shows agreement card with document icon, agreement name (e.g., "IC-Agreement 12_08_25"), event name, date/time, and "Sign Agreement" button.
4.2 Accessing the Agreement
- From Dashboard: Contractor clicks "Sign Now" on any pending agreement in the Service Agreements widget.
- From Event Details: Contractor navigates to event → Services tab → Service Agreement section → clicks "Sign Agreement" button.
- From Email/Link: Contractor clicks "Get Started" button in email or opens the unique link shared by the agency.
4.3 Agreement Review
- Full Agreement View - The contractor can read the complete agreement, including all sections, with Smart Fields auto-filled (event details, contractor info, brand details) and any Input Fields visible if applicable.
- Signature Section Display- The page shows all required signatures:
- Contractor signature field labeled as “You” with their email
- Agency representative(s) with name and email
- Date fields for each signature slot
- Input Fields Requirement - If the agreement includes Input Fields, the contractor must fill all required fields before they can sign or submit.
- Terms Acknowledgement - Before submitting, the contractor must check a mandatory box confirming: “I certify that I have read and agree to the terms and conditions mentioned in this contract.”
- Action Buttons
- Download PDF — downloads the current version of the agreement
- Cancel — visible upon scrolling down the agreement, positioned on the left side of the Submit Contract button.
- Allows the contractor to close the agreement without signing.
- If the contractor has added a signature but clicks Cancel without submitting, the agreement closes without saving any changes — signature is discarded.
- The contractor can return later to complete the signing process from the beginning.
- Submit Contract — becomes enabled only after:
- The agreement is scrolled from the top to the bottom
- Signature is added
- All required Input Fields are completed
- Terms acknowledgment is checked
4.4 Signature Capture
- Opening the Signature Modal -
- Clicking the contractor signature placeholder (or “Click to Sign”) opens a dedicated Sign Contract modal.
- It displays two signature blocks; out of the two signature blocks (Contractor and Agency), contractors can only sign in their own respective block — the agency signature block remains inaccessible to them.
- Two Signature Options
- Type Signature: Contractor types their name; system converts it to a signature-style font.
- Draw Signature: Contractor draws their signature; a “Clear” button allows redrawing.
- Signature Modal Details
- Signature Area: Canvas or input box with placeholder “Type your name here”
- Signer Info: Shows contractor name and date
- Legal Consent Checkbox:
Confirms: “By taking this action, I, [Name], consent to execute this document electronically with full legal validity.” - Cancel: Closes without saving
- Sign Contract: Applies the signature to the agreement
4.5 Signature Submission
- Required Fields Completion: Contractor must complete all Input Fields marked as "Required" before submission.
- Terms Confirmation: The acknowledgment checkbox must be checked to continue.
- Final Submission: Clicking Submit Contract completes the contractor signing process and submits the agreement back to the agency
- Signature Capture Details: Once signed, the signature field displays the visual signature along with:
- Date and timestamp (e.g., "July 19, 2025 at 8:51 am")
- Signer's name and email address
- IP address captured at the time of signing (e.g., "IP: 144.44.253.71")
4.6 Sequential Signing Logic
The system follows a fixed signing order to maintain legal validity and avoid conflicts:
- Contractor Signs First - All contractor(s) must complete their signatures before the agency can sign.
- Contractors cannot edit anything after signing.
- Primary Agency Owner Signs Next - After every contractor has finished signing, the primary agency owner automatically receives a notification informing them that their counter-signature is required.
- Agreement Completion - When all required parties have signed, the system updates the agreement status to “Completed.”
- While In Progress:
- Status stays “In Progress” until all signatures are collected.
- Contractors can still view the agreement, but can no longer make changes.
4.7 Expired Agreement Handling
- For the details on the expired agreement handling logic - Click here
4.7 Post-Agreement Signing Impact
Once a contractor signs the service agreement, the system automatically updates all relevant sections for both the agency and the contractor.
4.7.1 Agency Portal — Contractor Card Updates
- Agreement Icon Status Change: The service agreement icon on the contractor card updates to indicate signed status (changes from pending/unsigned indicator to signed indicator).
- Contractor Card Icons: The action icons row below the contractor name reflects updated agreement status:
- The agreement icon shows the completed state
- Other icons (pay rate, messaging, files, payment) remain functional
- Status Badge Update: If a "Pending" status badge was displayed for an unsigned agreement, it is removed or updated to reflect a signed status.
4.7.2 Agreement Status Updates
- Status Change: Agreement status updates from "Sent" or "Pending" to "Signed" (contractor signed) or "In Progress" (awaiting agency counter-signature).
- Timestamp Display: Contractor's signature displays with timestamp (e.g., "Signed on 12 Aug, 11:34 AM").
- Read-Only State: Agreement becomes read-only for the contractor; no further edits permitted.
4.7.3 Agency Notification Email & App
- Primary agency signer automatically receives notification that a counter-signature is required.
- Notification delivery is based on user's notification settings — user may receive email notification, in-app notification, or both.
- Notification includes contractor name, agreement name, event details, and a direct link to sign.
4.7.4 Project Details — Activity Tab
- Activity Log Entry: System logs "Contractor [Name] signed Service Agreement" with timestamp.
- View Agreement Shortcut: Activity entry includes "View Agreement" link for quick navigation.
- Chronological Timeline: Signing action appears in proper sequence within the activity feed.
4.7.5 Project Details — Files/Documents Tab
- Status Update: Agreement entry in the Documents & Forms list updates to show "Signed" or "Awaiting Counter-Signature" status.
- Kebab Menu Options: Updated options available:
- Preview Agreement
- Download PDF (with contractor signature)
- Counter-Sign (if agency signature required)
4.7.6 Contractor Portal — Post-Signature State
- Dashboard Widget: Agreement removed from "Pending" section in Service Agreements widget; moves to completed or signed section.
- Event Details: The Service Agreement section shows "Signed on [Date]" status instead of the "Sign Agreement" button.
- Read-Only Access: Contractor can view the signed agreement but cannot make changes.
- Download Available: "Download PDF" option available showing agreement with the contractor's signature and timestamp.
- Agency Signature Pending: Agency signature fields display as pending until countersigned.
5. Field Details & Validation
5.1 Sign Service Agreement View
Field Name
Type
Validation Rules
Brand Logo
Image
- Displays brand logo at top center; auto-fetched from brand profile
Brand Name
Text
- Format: Brand name (e.g., "Shutter & Sound")
Brand Contact Info
Text Block
- Displays agency owner name, phone, email, address, website
Service Agreement Expiration Date
Text
- Format: "Service Agreement expiration date: [Date]" (e.g., "Aug 17, 2024")
Agreement Title
Text (Heading)
- Format: "Example Agreement" or custom agreement name
Input Field (Full Name)
Text Input
- Placeholder: "Full Name"; required field for contractor to enter name
Agreement Content Sections
Rich Text
- Displays in numbers in the standard template format
Click to Sign Label
Text Link
- Format: "Click to Sign"; clickable to open Sign Contract modal
Contractor Signature Field
Signature Placeholder
- Displays contractor name with "(You)" label and email; shows "Date" placeholder
Agency Signature Field
Signature Placeholder
- Displays agency representative name and email; shows "Date" placeholder; read-only for contractor
Terms Checkbox
Checkbox
- Label: "I certify that I have read and agree to the terms and conditions mentioned in this contract."; required before submission
Download PDF Button
Secondary Action Button
- Downloads the current agreement as a PDF
Submit Contract Button
Primary Action Button
- Disabled until the signature and terms checkbox is completed; submits the contractor's signature
5.2 Sign Service Agreement Modal — Type & Draw Signature
Field Name
Type
Validation Rules
Modal Header
Text
- Format: "Sign Contract"
Close Icon
Icon Button
- closes the modal without saving
Type Signature Tab
Tab Button
Default active tab; switches to typed signature input
Draw Signature Tab
Tab Button
- Switches to drawing canvas for handwritten signature
Signature Input Area
Text Input
Placeholder: "Type your name here"; converts text to signature-style cursive font in real-time; minimum 1 character required; whitespace-only not accepted
Draw Signature Canvas
Canvas Area
Placeholder: "Draw your signature here"; accepts mouse or touch input; signature renders in real-time
Clear Button
Text Button
Clears typed signature; appears after text is entered
Signer Info
Text Display
Format: "[NAME] • [DATE]" (e.g., "DARELL WILLIAMS • 26 JULY 2025")
Legal Consent Checkbox
Checkbox
Label: "By taking this action, I, [Contractor Name], give my express consent to execute this document electronically, acknowledging its full legal validity and enforceability."; required
Cancel Button
Secondary Action Button
Closes the modal without applying the signature
Sign Contract Button
Primary Action Button
Yellow/orange button; applies signature to agreement; disabled until consent checkbox checked
6. Success Message Handling
Validation Scenario
Success Message
Signature applied successfully
No explicit message — Signature appears in contractor's signature field with timestamp
Agreement submitted successfully
"Contract Submitted" — confirmation modal with green checkmark icon; agreement status updates to "In Progress"
PDF downloaded successfully
No explicit message — PDF file downloads to contractor's device
Required Input Fields completed
No explicit message — Field validation checkmark appears; Submit button becomes enabled
Terms checkbox checked
No explicit message — Submit Contract button becomes enabled (if all other conditions met)
7. Error Message Handling
Field
Validation Scenario
Error Message
Signature
Contractor attempts to submit without signing
"Please add your signature before submitting the contract."
Signature (Type)
Signature input left empty
"Please type your name to create a signature."
Signature (Draw)
Drawing canvas left empty
"Please draw your signature before proceeding."
Legal Consent Checkbox
Consent checkbox not checked in modal
"Please accept the legal consent to proceed with signing."
Terms Checkbox
Terms acknowledgment not checked on submit
"Please confirm that you have read and agree to the terms and conditions."
Input Fields
Required Input Field left empty
"Please complete all required fields before submitting."
Agreement Access
Agreement has expired
"This service agreement has expired. Please contact your agency for renewal."
Agreement Access
Agreement link invalid or revoked
"This agreement link is no longer valid. Please contact your agency for assistance."
Submit
Submission fails due to network error
"Unable to submit a contract. Please check your connection and try again."
PDF Download
Download fails
"Unable to download PDF. Please try again."
8. Edge Cases
Scenario
Expected Behavior
Contractor closes browser mid-signing
Signature not saved; contractor must restart signing process upon returning; agreement remains in "Pending" status
Contractor signs but loses internet before submit
Signature captured locally; submission fails with error message; contractor can retry once connection restored
Contractor attempts to sign after agreement expired
Access blocked; expiration modal displayed: "This service agreement has expired. Please contact your agency for renewal."
Contractor accesses agreement from multiple devices
Agreement accessible from any device via unique link; signature applied from one device reflects across all
Contractor tries to edit agreement after signing
Agreement becomes read-only after signature submission; no edit options available
Contractor refreshes page during signing
Unsaved signature lost; contractor must re-sign; completed Input Fields may be retained if auto-saved
Multiple contractors assigned to same agreement
Each contractor sees only their own signature field; other contractor fields shown as pending until signed
Contractor signs but agency owner is deactivated
Agreement remains in "In Progress" status; system flags for agency admin to reassign counter-signer
Agreement link opened after contractor already signed
Contractor sees signed agreement in read-only mode with their signature and timestamp displayed
Contractor clears signature multiple times
No limit on clearing; final signature at time of "Sign Contract" click is applied
Input Field contains invalid data format
Inline validation error displayed; contractor must correct before submission
Contractor downloads PDF before signing
PDF shows unsigned version with empty signature placeholders
Contractor downloads PDF after signing
PDF shows contractor's signature; agency signature fields remain empty until counter-signed
**9. Test Cases
10. Acceptance Criteria**
- Agreement Visibility: Shared agreements appear in Contractor Portal Dashboard (Service Agreements widget) and Event Details (Service Agreement section) with event name, date/time, and "Sign Now" / "Sign Agreement" button.
- Agreement Access: Contractors can access agreements via Dashboard widget, Event Details section, email "Get Started" button, or unique tokenized link; all methods open the same agreement view.
- Agreement Review Screen: Displays full agreement content with brand logo, contact info, expiration date, all sections, populated Smart Fields, Input Fields (if any), signature placeholders, terms checkbox, Download PDF, and Submit Contract buttons.
- Input Fields Validation: All Input Fields marked as required must be completed before submission; inline validation errors shown for empty or invalid fields.
- Signature Capture — Type: Clicking signature placeholder opens Sign Contract modal; Type Signature tab allows contractor to type name; system converts to signature-style font; Clear button resets input.
- Signature Capture — Draw: Draw Signature tab provides canvas for handwritten signature via mouse/touch; Clear button resets canvas; drawn signature previewed in real-time.
- Legal Consent: Consent checkbox in modal is mandatory; text confirms electronic execution with legal validity; Sign Contract button disabled until consent checked.
- Signature Application: Clicking "Sign Contract" applies signature to agreement with timestamp; signature displays in contractor's field; modal closes and returns to agreement view.
- Terms Acknowledgement: Contractor must check the terms checkbox ("I certify that I have read and agree...") before the Submit Contract button is enabled.
- Submit Contract: Button enabled only when signature applied, all required Input Fields completed, and terms checkbox checked; clicking submits agreement and triggers agency notification.
- Sequential Signing: Contractor(s) must sign first; agency owner receives counter-sign notification only after all contractors complete signing; additional agency signers notified in sequence; status updates to "Completed" when all signatures collected.
- Post-Signature State: After signing, contractor sees "Signed on [Date]" status; agreement becomes read-only; Download PDF available with contractor signature visible; agency signature fields remain pending.
- Expired Agreement Handling: Expired agreements block access; contractor shown modal: "This service agreement has expired. Please contact your agency for renewal."; Sign, Submit, and Download buttons disabled.
- PDF Download: Download PDF available before and after signing; pre-sign PDF shows empty signature fields; post-sign PDF shows contractor signature with timestamp.
- Error Handling: Appropriate error messages displayed for missing signature, unchecked consent, incomplete required fields, expired agreement, invalid link, and network failures.
11. Dependencies
Module/System
Dependency Type
Impact if Unavailable
Contractor Portal
Integration dependency
Contractor cannot access, view, or sign agreements; Dashboard and Event Details inaccessible
Service Agreement Builder
Data dependency
Cannot retrieve agreement content, Smart Fields, or signature field configurations
Email Service
Integration dependency
Contractor does not receive agreement notification email; must rely on direct link sharing
Brand Management
Data dependency
Cannot display brand logo, name, and contact information in agreement header
Projects & Events
Data dependency
Cannot display event-related Smart Fields; agreement not linked to event details
Signature Capture Service
Integration dependency
Cannot capture typed or drawn signatures; signing functionality unavailable
PDF Generator
Integration dependency
Cannot generate downloadable PDF version of agreement
Notification Service
Integration dependency
Agency owner not notified when contractor signs; counter-sign workflow delayed
Link Generation Service
Data dependency
Tokenized agreement links invalid; contractor cannot access agreement via shared link
Activity Log Service
Integration dependency
Signature events not recorded; audit trail incomplete
Input Field Validation
Data dependency
Cannot validate required Input Fields; submission may proceed with incomplete data
**
12. Reference**
- Link - Click Here
☑️ Countersign - Agency Side
1. Module Overview
- Module Name: Counter-Sign Service Agreement — Agency Side (Sub-module of Contracts)
- Purpose: Enables agency owners and authorized team members to review contractor-signed agreements and apply counter-signatures to finalize the agreement. Provides a sequential signing workflow ensuring all agency signers complete their signatures in the designated order.
- Business Goal: Complete the agreement execution process by capturing agency counter-signatures, maintain legal validity through sequential signing order, provide visibility into contractor-submitted information, and finalize agreements for project commencement.
2. Roles & Permissions
3. User Flow
- Click Here to view the Flowchart
4. Functional Logic
4.1 Counter-Sign Notification
Once all contractor(s) complete their signatures, the system triggers notifications to the agency:
- Email Notification: Primary agency owner receives email with subject "Counter-signature required for [Agreement Name]" containing agreement details and "Countersign Now" CTA button.
- In-App Notification: Notification appears in the agency owner's notification center with a direct link to the agreement.
- Dashboard Alert: Pending counter-sign agreements highlighted in Dashboard widgets.
- Project Activity Tab: Activity log entry created: "The contract is signed by [Contractor Name]. Counter-signature required."
4.2 Accessing Agreement for Counter-Signing
Agency users can access agreements pending counter-signature through multiple entry points:
- From Email: Click the "Countersign Now" button in the notification email.
- From Notification Center: Click the notification to open the agreement directly.
- From Project Details — Activity Tab: Click the "Countersign" button on the activity log entry or the "View Contract" link.
- From Project Details — Files/Documents Tab: Locate agreement in Documents & Forms list → Click to open Agreement Details → Click "Countersign" button.
- From Agreement Details View: "Countersign" button prominently displayed in header when counter-signature is pending.
4.3 Agreement Details — Signers, Information & Activity Logs
4.3.1 Signers Section
This section provides a clear snapshot of who needs to sign, who has already signed, and what actions are pending.
-
Agency Owner (You)
- Status shows “In Progress” when the contractor has signed, and the agency signature is pending.
- A “Countersign” button appears, allowing the agency owner to complete their part of the agreement.
-
Contractor
- Shows “Signed [Date & Time]” in green once they complete their signing.
- Displays “Last Viewed” timestamp, helping agencies track contractor engagement and audit behavior.
This section ensures transparency by showing every signer’s current position in the signing workflow.
4.3.2 Information Collected
- This area displays all details submitted by the contractor through the Input Fields within the agreement. These fields may vary based on the specific agreement configuration.
- This section gives the agency a complete overview of all contractor-submitted data in one place, ensuring that critical event information is captured before countersigning.
4.3.3 File Activity Log
This is a chronological timeline that records every important action performed on the agreement, providing a complete audit trail.
Examples of log entries include:
- “The contract has been successfully created by [User Name]” — captures agreement generation.
- “The contract has been successfully sent by [User Name]” — records when the agreement is shared.
- “The contract has been completed by [Contractor Name]” — marks contractor signing completion.
4.4 Counter-Signature Process (Agency Signing)
4.4.1 Starting the Counter-Sign Process
When the contractor finishes signing, the agency owner sees a “Countersign” button.
Clicking it opens the Sign Contract modal, which uses the same signing interface as the contractor’s signing experience for consistency and ease of use.
4.4.2 Counter Signature Logic
- Signature Options: Agency users can type their name (auto-styled) or draw their signature, with a Clear option to redo.
- Signature Modal Details: Signature area shows placeholders (type/draw), and signer info displays the agency user’s name and date.
- Legal Consent: Agency users must check the consent box confirming they are electronically signing the agreement.
- Actions: Sign Contract applies the counter-signature; Cancel closes without saving.
4.4.3 Agency Signing Logic
- Primary Agency Signer Determination:
- When sending contracts through automation, the Agency Owner automatically becomes the primary signer for counter-signature.
- When sending contracts manually, the user who shares the contract (Agency Owner, Admin, or Project Owner) becomes the primary signer for the counter-signature.
- Primary Agency signer Is Always Required -
- At least one agency signature is mandatory for every agreement and triggers completion checks.
- Auto-Send: The system automatically assigns the Agency Owner as the primary signer.
- Manual Send: The user who initiates the send (Agency Owner, Admin, or Project Manager) is assigned as the primary signer and can sign the agreement.
- **Completion Rules
**The agreement is considered completed when:- Contractor(s) have signed, and
- Primary Agency Owner has signed
4.5 Post-Agreement Completion State
4.5.1 Completed State in Agreement Details View
- Agreement is marked “Completed” (green badge) once all required signatures are collected
(Contractor + Agency Owner + Mandatory Additional Signers). - Available actions: Download PDF and View Contract (no Countersign option).
- Every signer shows “Signed [Date & Time]” in green.
- All contractor-provided Input Field values are visible.
- Full Activity Log remains accessible for audit tracking.
4.5.2 Contractor Completion Notification
- The contractor receives a notification and email: “Your service agreement has been fully executed.”
- In the Contractor Portal:
- Status shows Completed.
- The final signed PDF is available for download.
4.5.3 Project Updates
- Project Activity Tab logs a Completed entry.
- Files/Documents displays the agreement with a Completed badge.
- Full audit history is preserved for compliance and traceability.
5. Field Details & Validation
5.1 For field details & validations for Sign Service Agreement View - Click Here
5.2 For field details & Validation for Sign Service Agreement Modal — Type Signature & Draw Signature - Click Here
6. Success Message Handling
Validation Scenario
Success Message
Counter-signature applied successfully
No explicit message — Signature appears in agency signer's field with timestamp; status updates accordingly
Agreement completed (all signatures collected)
"Contract Completed" — confirmation modal with green checkmark icon; status changes to "Completed" (green badge)
PDF downloaded successfully
No explicit message — PDF file downloads to agency user's device
Counter-sign notification sent to next signer
No explicit message — Next signer in sequence receives email and in-app notification automatically
Contractor completion notification sent
No explicit message — Contractor automatically receives "Agreement fully executed" notification
7. Error Message Handling
Field
Validation Scenario
Error Message
Signature
Agency user attempts to submit without signing
"Please add your signature before submitting."
Signature (Type)
Signature input left empty
"Please type your name to create a signature."
Signature (Draw)
Drawing canvas left empty
"Please draw your signature before proceeding."
Legal Consent
Consent checkbox not checked
"Please accept the legal consent to proceed with signing."
Agreement Access
Agreement has expired before counter-signing
"This service agreement has expired. Please resend a new agreement to the contractor."
Countersign
Network error during submission
"Unable to submit a signature. Please check your connection and try again."
PDF Download
Download fails
"Unable to download PDF. Please try again."
8. Edge Cases
Scenario
Expected Behavior
Agency owner unavailable to counter-sign
Admin can reassign counter-sign responsibility to another authorized user; new signer receives notification
Agreement expires before agency counter-signs
Agreement marked as "Expired"; no further signatures allowed; agency must resend new agreement to contractor
Agency owner signs but mandatory additional signer is unavailable
Agreement remains "In Progress"; Admin can reassign or remove mandatory signer if permitted
Multiple agency signers sign simultaneously
System accepts signatures in any order; no conflict; completion triggered when all mandatory signatures collected
Agency user closes browser mid-signing
Signature not saved; user must restart counter-sign process; agreement remains "In Progress"
Agency user signs but loses internet before submission
Signature captured locally; submission fails with error; user can retry once connection restored
Primary agency owner removed from team after being assigned
System flags agreement for reassignment; Admin must assign new agency signer before completion
Contractor disputes agreement after agency counter-signs
Completed agreement cannot be modified; agency can void and resend new version; original retained with "Voided" status for audit
Optional additional signer signs after agreement already completed
Signature not required; system may allow optional signature to be recorded or block as agreement is already finalized
Agency owner accesses agreement before contractor signs
"Countersign" button disabled; message displayed: "Waiting for contractor to sign"
Agreement has multiple contractors and only some have signed
Counter-sign remains locked; agency owner notified only after all contractors complete signing
PDF downloaded before counter-signing
PDF shows contractor signature(s); agency signature fields remain empty
PDF downloaded after full completion
PDF displays all signatures with timestamps; fully executed agreement
Counter-sign notification email bounces
In-app notification still delivered; system logs email failure; user can access via Project Details
9. Test Cases
10. Acceptance Criteria
- Counter-Sign Notification: Once all contractor(s) sign, primary agency owner receives email notification with "Countersign Now" CTA, in-app notification in notification center, and activity log entry in Project Details.
- Access Points: Agency users can access pending counter-sign agreements via email CTA, notification center, Project Details Activity Tab ("Countersign" button), Files/Documents Tab, or Agreement Details View header.
- Agreement Details View: Displays agreement name, "In Progress" status badge, signers section with status (Signed/Pending), Information Collected from contractor, File Activity log, and action buttons (Download PDF, View Contract, Countersign).
- Signers Section Display: Agency Owner shows "In Progress" with "Countersign" button when pending; Contractor shows "Signed [Date & Time]" in green with "Last viewed" timestamp after signing.
- Information Collected: All Input Field data submitted by contractor (venue, address, contact number, event date, etc.) displayed in read-only format for agency review before counter-signing.
- Counter-Signature Modal: Clicking "Countersign" opens Sign Contract modal with Type Signature and Draw Signature tabs; signature area, signer info (name and date), legal consent checkbox, Cancel and Sign Contract buttons displayed.
- Signature Options: Type Signature converts typed name to signature-style font with Clear button; Draw Signature provides canvas for mouse/touch drawing with Clear button to reset.
- Legal Consent: Consent checkbox mandatory; text confirms electronic execution with legal validity; Sign Contract button disabled until consent checked.
- Agency Signing Logic: Primary Agency Owner signature always mandatory; additional signers can be mandatory or optional; no required signing order among agency signers; all can sign in any order.
- Completion Rules: Agreement status changes to "Completed" when: all contractor(s) signed + Primary Agency Owner signed + all mandatory additional signers signed; optional signers do not block completion.
- Post-Completion State: Agreement displays "Completed" (green badge); all signers show "Signed [Date & Time]"; Download PDF and View Contract available; Countersign button removed; agreement becomes read-only.
- Contractor Notification: Upon completion, contractor receives notification/email "Your service agreement has been fully executed"; Contractor Portal shows "Completed" status with final PDF available for download.
- Project Updates: Project Activity Tab logs completion entry; Files/Documents Tab displays agreement with "Completed" badge; full audit trail preserved.
- Expired Agreement Handling: If agreement expires before counter-signing, marked as "Expired"; no further signatures allowed; agency must resend new agreement to contractor.
- PDF Download: Available before and after counter-signing; pre-countersign PDF shows contractor signature(s) with empty agency fields; post-completion PDF shows all signatures with timestamps.
11. Dependencies
Module/System
Dependency Type
Impact if Unavailable
Contractor Portal
Integration dependency
Contractor cannot sign agreement; counter-sign workflow cannot be initiated
Email Service
Integration dependency
Agency owner does not receive counter-sign notification email; must rely on in-app notification
Notification Service
Integration dependency
In-app notifications not delivered; agency owner unaware of pending counter-signatures
Signature Capture Service
Integration dependency
Cannot capture typed or drawn signatures; counter-signing functionality unavailable
PDF Generator
Integration dependency
Cannot generate downloadable PDF version of completed agreement
Projects & Events
Data dependency
Cannot display agreement in Project Details Activity Tab or Files/Documents Tab
Team Management
Data dependency
Cannot validate agency owner or additional signers; signer assignment fails
Service Agreement Builder
Data dependency
Cannot retrieve agreement content, signature field configurations, or Input Field data
Activity Log Service
Integration dependency
Counter-sign events not recorded; audit trail incomplete
Contractor Management
Data dependency
Cannot display contractor details in signers section; contractor information unavailable
Brand Management
Data dependency
Cannot display brand logo and contact information in agreement header
12. Reference
- Link - Click Here
No tickets linked — generate test cases directly from this FRD instead.