← FRD Management
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

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

☑️ 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

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
    • Email
    • 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

☑️ 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

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

  1. Initial Generation: Clicking "Generate Link" shows a confirmation modal; upon confirmation, the system creates unique tokenized URLs for each recipient/signer.
  2. 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.
  3. 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.).
  4. Link Expiration: Generated links remain active until the agreement is completed or expires (based on configured expiration settings).
  5. 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.
  6. 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

☑️ 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

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**

☑️ 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

4. Functional Logic

4.1 Counter-Sign Notification

Once all contractor(s) complete their signatures, the system triggers notifications to the agency:

  1. Email Notification: Primary agency owner receives email with subject "Counter-signature required for [Agreement Name]" containing agreement details and "Countersign Now" CTA button.
  2. In-App Notification: Notification appears in the agency owner's notification center with a direct link to the agreement.
  3. Dashboard Alert: Pending counter-sign agreements highlighted in Dashboard widgets.
  4. 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:

  1. From Email: Click the "Countersign Now" button in the notification email.
  2. From Notification Center: Click the notification to open the agreement directly.
  3. From Project Details — Activity Tab: Click the "Countersign" button on the activity log entry or the "View Contract" link.
  4. From Project Details — Files/Documents Tab: Locate agreement in Documents & Forms list → Click to open Agreement Details → Click "Countersign" button.
  5. 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

Linked tickets (0)

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

—