4
Main Phases
12
Workflow Steps
5
User Roles
3
Contract Packages

📋 About This Module

The Swimming Pool Maintenance Module is a custom Odoo implementation designed for companies providing swimming pool products, installation, and maintenance services. This documentation covers the complete workflow from customer inspection to contract completion.

i

Getting Started

Use the sidebar navigation to explore different sections of the workflow. Click on any diagram to view it in full screen with zoom capabilities.

📄 Current Business Operations Documentation

Comprehensive 95-page documentation of the actual current business operations, workflows, pain points, and system requirements before Odoo implementation.

✨ Latest Update: Version 2.1

January 3, 2026: Updated with Installation Coordinator workflows, two-system problem documentation, search dysfunction issues, and material returns root causes - all verified from meeting transcripts.

95
Pages
35K+
Words
3
Departments
20+
Use Cases

🔄 Main Workflow Diagram

Main Workflow Diagram
Click to view full size
i

How to Read This Diagram

Follow the flow from top to bottom. Each box represents a step, diamonds are decision points, and arrows show the sequence.

The 4 Phases Explained

📋

Inspection Phase

Customer contacts company → Quotation created → Paid → Worker inspects pool → Report submitted

📝

Contract Phase

Sales order from inspection → Package selected → Paid → Contract auto-created

📅

Visits Phase

Visits generated → Employees assigned → Approval requested → Worker notified

Execution Phase

Items requested if needed → Check-in → Work done → Check-out → Manager confirms

👥 Roles Diagram

User Roles Diagram
Click to view full size

📋 Detailed Responsibilities

Role Tasks Reports To
🧑‍💼 Sales Person Create quotations, sales orders, select packages, review reports Sales Manager
🧑‍💻 Accountant Create invoices, process payments, track records Finance Manager
👨‍💼 Maintenance Manager Create orders, assign workers, generate visits, confirm completion Operations Director
👷 Worker Perform inspections, execute visits, check-in/out, request items Maintenance Manager
📦 Inventory Keeper Review requests, check stock, approve/reject, issue items Warehouse Manager

📋 Inspection Flow Diagram

Inspection Flow Diagram
Click to view full size

📝 Step-by-Step Process

1

Customer Contacts Company

Customer reaches out requesting pool maintenance services

2

Create Inspection Quotation

Sales person creates and sends quotation for initial inspection

Sales Person
3

Customer Decision

Customer accepts or rejects the quotation

4

Create Invoice & Receive Payment

Accountant creates invoice, customer pays

Accountant
5

Create Inspection Order & Assign Worker

Maintenance Manager creates the order and assigns worker

Maintenance Manager
6

Perform Inspection & Submit Report

Worker visits site, assesses pool, submits findings

Worker
!

Important

The inspection report is critical - it determines the maintenance contract details.

📝 Contract Creation Diagram

Contract Creation Diagram
Click to view full size

Prerequisites

i

Before Starting Contract Creation

Ensure the following are completed:

  • Inspection Order completed with status "Done"
  • Inspection Report submitted by worker
  • Customer has reviewed the inspection findings
  • Customer agrees to proceed with maintenance contract

📋 Step-by-Step Process

1

Review Inspection Report

Sales person reviews the completed inspection report to understand pool condition and requirements.

Odoo Path: Maintenance → Inspection Orders → Select Order → View Report Tab
Sales Person
2

Create Maintenance Quotation

Based on inspection findings, create a new quotation for maintenance services.

Odoo Path: Sales → Quotations → Create
Key Fields:
• Customer: Auto-filled from inspection
• Order Type: Select "Maintenance Contract"
• Reference: Link to Inspection Order
Sales Person
3

Select Maintenance Package

Choose the appropriate package based on customer needs and budget.

Available Packages:
3 Months: 12 visits - Trial period for new customers
6 Months: 24 visits - Standard package
12 Months: 48 visits - Best value, premium customers
Sales Person
4

Send Quotation to Customer

Email the quotation to customer for review and approval.

Action: Click "Send by Email" button
Status Change: Draft → Quotation Sent
Sales Person
5

Customer Confirms Quotation

Customer reviews and accepts the quotation, or requests modifications.

If Rejected: Return to Step 3, adjust package or terms
If Accepted: Proceed to confirmation
6

Confirm Sales Order

Convert the accepted quotation to a confirmed sales order.

Action: Click "Confirm" button
Status Change: Quotation → Sales Order
Auto-Generated: Sales Order Number (SO-XXXXX)
Sales Person
7

Create & Send Invoice

Generate invoice from the sales order for customer payment.

Odoo Path: Sales Order → Create Invoice button
Invoice Type: Regular Invoice (full amount) or Down Payment
Action: Validate and Send to Customer
Accountant
8

Register Payment

Record customer payment against the invoice.

Odoo Path: Invoice → Register Payment button
Payment Methods: Bank Transfer, Cash, Credit Card
Status Change: Invoice: Open → Paid
Accountant
9

Maintenance Contract Auto-Created

System automatically generates the maintenance contract upon payment confirmation.

🔄 Automatic Process:
• Contract created with customer details
• Package duration and visit count set
• Start date = Payment date
• End date = Start date + Package duration
• Status: Active
System / Automatic

💡 Tips & Best Practices

Best Practice

Always attach the inspection report PDF to the quotation email so customers can see exactly what services are included.

!

Important

Never confirm a sales order before customer approval. This ensures accurate revenue recognition and prevents contract disputes.

i

Pro Tip

For premium customers, consider offering the 12-month package with a discount. Use the "Discount %" field in the order line.

🎯 Expected Outcomes

Document Status After Phase 2 Next Action
Sales Order Confirmed Linked to Contract
Invoice Paid Archived
Maintenance Contract Active → Phase 3: Visit Planning

📅 Visit Planning Diagram

Visit Planning Diagram
Click to view full size

Prerequisites

i

Before Starting Visit Planning

Ensure the following are completed:

  • Maintenance Contract is "Active"
  • Contract payment has been received
  • Customer location and contact details are verified
  • Workers are available and assigned to the maintenance team

📋 Step-by-Step Process

1

Access Active Contract

Navigate to the maintenance contract to begin visit planning.

Odoo Path: Maintenance → Contracts → Select Active Contract
Filter: Status = "Active"
Maintenance Manager
2

Generate Visits Automatically

System generates all visits based on the package selected (12, 24, or 48 visits).

🔄 Automatic Process:
• Visits created based on package duration
• Default frequency: 1 visit per week
• Visit dates distributed evenly across contract period
• Initial status: "Draft"
System / Automatic
3

Review Visit Schedule

Review the automatically generated visit schedule and make adjustments if needed.

Odoo Path: Contract → Visits Tab → View All Visits
Check:
• Visit dates don't conflict with holidays
• Reasonable time between visits
• Customer availability (if known)
Maintenance Manager
4

Assign Workers to Visits

Assign appropriate workers to each visit based on location, skills, and availability.

Odoo Path: Visit → Edit → Assigned Worker field
Considerations:
• Worker's geographic zone
• Worker's current workload
• Special skills required (if any)
• Continuity (same worker for same customer when possible)
Maintenance Manager
5

Set Visit Time Slots

Define the expected time window for each visit.

Key Fields:
• Scheduled Date: The planned visit date
• Time Slot: Morning (8AM-12PM) / Afternoon (1PM-5PM)
• Estimated Duration: Usually 1-2 hours
Maintenance Manager
6

Submit for Approval

Send the visit schedule to Upper Manager for approval.

Action: Click "Request Approval" button
Status Change: Draft → Pending Approval
Notification: Upper Manager receives approval request
Maintenance Manager
7

Manager Reviews & Approves

Upper Manager reviews the visit plan and approves or requests changes.

If Rejected: Return to Maintenance Manager with notes for revision
If Approved: Visits become "Scheduled" and workers are notified
Upper Manager
8

Workers Receive Notifications

Assigned workers receive notifications about their scheduled visits.

🔄 Automatic Notifications:
• Email notification with visit details
• In-app notification in Odoo
• Calendar event created (if integrated)
• Status: "Scheduled" → Ready for execution
System / Automatic

💡 Tips & Best Practices

Best Practice

Assign the same worker to a customer consistently. This builds rapport and the worker becomes familiar with the pool's specific needs.

!

Important

Always check worker availability before assigning. Overloading workers leads to rushed jobs and lower quality service.

i

Pro Tip

Group visits by geographic area to minimize travel time. Use the map view in Odoo to visualize customer locations.

🎯 Expected Outcomes

Item Status After Phase 3 Next Action
Contract Active Monitor visit execution
Visits Scheduled → Phase 4: Execution
Workers Notified Prepare for visits

Execution Flow Diagram

Visit Execution Diagram
Click to view full size

Prerequisites

i

Before Starting Visit Execution

Ensure the following are completed:

  • Visit status is "Scheduled" and approved
  • Worker has received notification and confirmed availability
  • Required materials are available (if any)
  • Customer has been notified of the visit

📋 Step-by-Step Process

1

Review Today's Visits

Worker reviews their assigned visits for the day in the mobile app or Odoo dashboard.

Odoo Path: My Visits → Today's Schedule
View: List of visits with customer name, address, and time slot
Worker
2

Check Material Requirements

Review if any special materials are needed for the visit. If materials are required, submit an inventory request.

If Materials Needed:
• Go to Inventory Request section
• Submit request with items and quantities
• Wait for Inventory Keeper approval
• Collect approved items before departing
Worker
3

Travel to Customer Location

Proceed to the customer's address using the navigation integrated in the app.

Available: Google Maps integration for navigation
Customer Details: Address, contact phone, gate code (if any)
Worker
4

Check-In at Location

Upon arrival, perform check-in to record the start time and location.

Action: Click "Check In" button
Auto-Captured:
• GPS location (verified within customer area)
• Timestamp of arrival
• Status Change: Scheduled → In Progress
Worker
5

Perform Maintenance Tasks

Execute the standard maintenance checklist for the pool.

Standard Tasks:
• Check and adjust water chemistry (pH, chlorine)
• Clean pool surface and skimmer baskets
• Inspect pump and filter system
• Vacuum pool floor if needed
• Check water level and add if necessary
• Inspect tiles and equipment for damage
Worker
6

Document Work Completed

Record all tasks performed and any issues found during the visit.

Odoo Path: Visit → Work Report Tab
Required Fields:
• Tasks completed checklist
• Water chemistry readings (before/after)
• Materials used (deducted from inventory)
• Photos of completed work
• Notes for next visit (if any)
Worker
7

Report Issues (If Any)

If any problems are found that require attention, document them.

Issue Types:
• Equipment malfunction (pump, filter, heater)
• Structural damage (tiles, coping, deck)
• Water quality problems requiring treatment
• Safety concerns
Action: Create Issue Report → Maintenance Manager notified
Worker
8

Check-Out from Location

Complete the visit by performing check-out to record end time.

Action: Click "Check Out" button
Auto-Captured:
• Checkout timestamp
• Total time on-site calculated
• Status Change: In Progress → Pending Confirmation
Worker
9

Manager Confirms Completion

Maintenance Manager reviews the work report and confirms visit completion.

Odoo Path: Visits → Pending Confirmation
Review: Work report, photos, time spent, materials used
Action: Click "Confirm" to complete
Status Change: Pending Confirmation → Completed
Maintenance Manager

💡 Tips & Best Practices

Best Practice

Always take before and after photos. This provides proof of work quality and helps track pool condition over time.

!

Important

Never skip the check-in process. GPS verification ensures accurate attendance records and protects both the company and workers.

i

Pro Tip

If the customer is not home, take extra photos and leave a service completion note. Document any access issues in the visit notes.

🎯 Expected Outcomes

Item Status After Phase 4 Next Action
Visit Completed Archived in history
Contract Visits Count Decremented Remaining visits updated
Inventory Adjusted Materials deducted
Work Report Saved Available for customer view

📦 Inventory Flow Diagram

Inventory Request Diagram
Click to view full size

When to Use Inventory Requests

i

Inventory Request Scenarios

Workers should submit inventory requests when:

  • Pool requires chemical treatment beyond regular supplies
  • Equipment parts need replacement (filter cartridges, pump seals)
  • Cleaning supplies are running low in worker's vehicle stock
  • Special tools are needed for a specific job
  • Customer requests additional products or services

📋 Step-by-Step Process

1

Identify Material Needs

Worker identifies materials required for upcoming visit or current job.

Common Items:
• Chemicals: Chlorine, pH adjusters, algaecide
• Filters: Sand, cartridge replacements
• Parts: Pump seals, gaskets, O-rings
• Cleaning: Brushes, nets, vacuum heads
Worker
2

Create Inventory Request

Submit a formal request through Odoo for the needed items.

Odoo Path: Inventory → Requests → Create New
Required Fields:
• Request Type: Maintenance / Emergency / Restock
• Related Visit: Link to specific visit (if applicable)
• Items: Product, Quantity, Unit of Measure
• Needed By: Date/Time required
• Reason: Brief explanation
Worker
3

Inventory Keeper Reviews Request

Inventory Keeper receives notification and reviews the request.

Odoo Path: Inventory → Requests → Pending Review
Checks:
• Stock availability for requested items
• Request validity and reasonableness
• Worker's assigned visits justify the request
Inventory Keeper
4

Check Stock Availability

Verify if requested items are available in warehouse.

If In Stock: Proceed to approval
If Out of Stock:
• Notify worker of unavailability
• Suggest alternatives if available
• Create purchase order if critical
Inventory Keeper
5

Approve or Reject Request

Make decision on the inventory request.

If Approved:
• Status: Pending → Approved
• Worker notified of approval
• Items reserved in system

If Rejected:
• Status: Pending → Rejected
• Rejection reason documented
• Worker notified with explanation
Inventory Keeper
6

Prepare Items for Pickup

Inventory Keeper prepares the approved items for worker collection.

Actions:
• Gather items from warehouse
• Verify quantities and condition
• Stage items in pickup area
• Update request status to "Ready for Pickup"
Inventory Keeper
7

Worker Collects Items

Worker picks up approved items from warehouse.

Process:
• Worker confirms receipt in Odoo
• Digital signature captured
• Items transferred to worker's vehicle stock
• Status: Ready → Issued
• Inventory automatically deducted
Worker

💡 Tips & Best Practices

Best Practice

Submit requests at least 24 hours before needed. This gives the warehouse team time to prepare and ensures items are ready when you need them.

!

Important

Always return unused items to inventory. This keeps stock records accurate and prevents waste.

i

Pro Tip

For emergency requests (same-day needs), call the warehouse directly after submitting the Odoo request to expedite processing.

🔄 Request Status Reference

Status Meaning Next Action
Draft Request created but not submitted Worker submits request
Pending Awaiting Inventory Keeper review Inventory Keeper reviews
Approved Request approved, preparing items Items being staged
Ready Items ready for pickup Worker collects items
Issued Items collected by worker Complete
Rejected Request denied Worker reviews reason

Approval Diagram

Approval Flow Diagram
Click to view full size

📋 What Requires Approval

i

Approval Required Items

The following actions require Upper Manager approval:

  • Visit Schedules: Weekly/monthly visit plans before workers are notified
  • Schedule Changes: Rescheduling or canceling existing visits
  • Extra Visits: Additional visits outside the contract package
  • Contract Extensions: Extending contract duration or adding visits
  • Discounts: Any pricing discounts beyond standard rates

📋 Approval Process Steps

1

Maintenance Manager Submits Request

After creating the visit schedule, submit for Upper Manager approval.

Odoo Path: Visit Schedule → Actions → Submit for Approval
Status Change: Draft → Pending Approval
Automatic: Upper Manager receives email notification
Maintenance Manager
2

Upper Manager Reviews Request

Upper Manager accesses the pending approvals dashboard to review.

Odoo Path: Approvals → Pending → Select Request
Review Items:
• Worker assignments are balanced
• Visit dates are reasonable
• Customer requirements are met
• Resource availability confirmed
Upper Manager
3

Decision: Approve or Reject

Upper Manager makes the final decision on the request.

If Approved:
• Click "Approve" button
• Status: Pending Approval → Approved
• Maintenance Manager notified
• Visits become "Scheduled"

If Rejected:
• Click "Reject" button
• Enter rejection reason (required)
• Status: Pending Approval → Rejected
• Maintenance Manager notified with feedback
Upper Manager
4

If Rejected: Revise and Resubmit

Maintenance Manager reviews feedback and makes corrections.

Actions:
• Read rejection reason
• Make required modifications
• Status: Rejected → Draft
• Resubmit for approval
Maintenance Manager
5

Post-Approval: Workers Notified

After approval, the system automatically notifies assigned workers.

🔄 Automatic Actions:
• Email sent to each assigned worker
• Calendar invites created
• Mobile app notifications pushed
• Visit appears in worker's schedule
System / Automatic

💡 Tips & Best Practices

Best Practice

Submit approval requests at least 48 hours before the scheduled start date. This gives managers time to review thoroughly and allows for revisions if needed.

!

Important

Never notify workers before getting approval. This prevents confusion and ensures all schedules are properly authorized.

i

Pro Tip

When resubmitting after rejection, add a note explaining what changes you made. This helps the reviewer approve faster.

🔄 Approval Status Reference

Status Description Who Can Change
Draft Schedule created, not yet submitted Maintenance Manager
Pending Approval Waiting for Upper Manager review Upper Manager
Approved Schedule approved, workers notified -
Rejected Schedule rejected, needs revision Maintenance Manager (to revise)

📦 Packages Diagram

Contract Packages Diagram
Click to view full size

ℹ️ Package Overview

i

Understanding Our Packages

We offer three maintenance packages designed to meet different customer needs. Each package includes scheduled weekly visits for pool cleaning and maintenance.

📦 3-Month Package

12
Weekly Visits
  • Perfect for new customers
  • Trial period to evaluate service
  • Low commitment level
  • Flexible - easy to extend
  • Standard service included
Ideal for: Testing our service

📦 6-Month Package

24
Weekly Visits
  • Best for regular customers
  • Standard commitment
  • Better value than 3-month
  • Priority scheduling
  • Full service coverage
Popular Choice

1-Year Package

48
Weekly Visits
  • Best for premium customers
  • Maximum value per visit
  • Priority emergency response
  • Dedicated worker assignment
  • Free equipment inspection
Best Value

📊 Package Comparison

Feature 3 Months 6 Months 1 Year
Duration3 months6 months12 months
Total Visits12 visits24 visits48 visits
Visit FrequencyWeeklyWeeklyWeekly
Best ForNew customersRegular customersPremium customers
ValueTrial periodStandardBest value
CommitmentLowMediumHigh
Priority SupportStandardPriorityVIP

💡 Selecting the Right Package

Recommendation

For first-time customers, we recommend starting with the 3-month package to experience our service quality, then upgrading to the 1-year package for maximum value.

i

Odoo Path

To select a package: Sales → Quotations → Create → Select "Maintenance Contract" → Choose Package

ℹ️ Understanding Status Flows

i

Why Status Tracking Matters

Status tracking is essential for monitoring progress, identifying bottlenecks, and ensuring accountability. Each document and visit moves through a defined lifecycle from creation to completion.

📄 Document Status Flow

Document Status Diagram
Click to view full size

📋 Document Status Reference

Documents include Inspection Orders, Quotations, and Contracts. Here's how they progress:

Status Description Triggered By Next Actions
Draft Document created, not finalized User creates new document Edit, Submit, or Cancel
Pending Awaiting customer or manager action Document submitted for approval Approve, Reject, or Request Changes
Confirmed Document approved and confirmed Manager or customer approves Proceed to next phase
Active Contract is active and visits ongoing Payment received, service starts Execute visits until completion
Completed All visits completed successfully All contract visits finished Archive or Renew
Cancelled Document cancelled before completion User or customer cancels None (archived)

📅 Visit Status Flow

Visit Status Diagram
Click to view full size

📋 Visit Status Reference

Each maintenance visit goes through these status changes:

Status Description Triggered By Next Actions
Draft Visit created but not yet scheduled System generates from contract Schedule and assign worker
Scheduled Visit scheduled and worker assigned Manager approves schedule Worker performs check-in
In Progress Worker on-site, performing tasks Worker checks in at location Complete work and check out
Pending Confirmation Work done, awaiting manager review Worker checks out Manager confirms completion
Completed Visit confirmed and archived Manager confirms completion None (archived in history)
Rescheduled Visit moved to a different date Manager changes date Returns to Scheduled status
Cancelled Visit cancelled Manager or customer cancels May be rescheduled or credited

💡 Tips for Status Management

Best Practice

Monitor the "Pending" and "Pending Confirmation" statuses daily. Items stuck in these states may indicate process bottlenecks.

!

Important

Visits can only be marked "Completed" after the worker checks out AND the manager confirms. Both steps are required.

i

Odoo Filter Tip

Use Odoo's filter feature to quickly view all items in a specific status. Go to the list view and add a filter: Status = [desired status]

ℹ️ Integration Overview

i

Why Integration Matters

The Swimming Pool Maintenance module doesn't operate in isolation. It connects with multiple Odoo modules to provide a seamless experience - from customer management to inventory control to financial reporting.

🔗 Integration Diagram

System Integration Diagram
Click to view full size

💼 Sales Module

Customer relationship and quotation management

Data Shared:

  • Customer contacts - Name, phone, email, address
  • Pool information - Location, specifications
  • Quotations - Package pricing, terms
  • Sales orders - Confirmed contracts
Integration Point: When a quotation is confirmed, it automatically creates a maintenance contract

📦 Inventory Module

Materials and supplies management

Data Shared:

  • Product catalog - Chemicals, parts, tools
  • Stock levels - Available quantities
  • Stock moves - Material transfers to workers
  • Consumption records - Materials used per visit
Integration Point: Material requests create stock picking orders for inventory keeper approval

💰 Accounting Module

Financial transactions and reporting

Data Shared:

  • Invoices - Contract billing, inspection fees
  • Payments - Customer payment tracking
  • Revenue recognition - Service delivery tracking
  • Cost allocation - Materials per contract
Integration Point: Contract confirmation triggers invoice creation based on payment terms

👥 HR Module

Employee and workforce management

Data Shared:

  • Employee records - Worker profiles
  • Work schedules - Availability calendar
  • Skills matrix - Worker certifications
  • Attendance - Check-in/check-out records
Integration Point: Visit assignments use HR data for worker selection and scheduling

📊 Data Flow Summary

Action in Maintenance Triggers In Result
Create Inspection Sales New lead/opportunity created
Confirm Contract Sales, Accounting Sales order confirmed, Invoice generated
Schedule Visits HR Calendar events, Worker assignments
Request Materials Inventory Stock picking order created
Complete Visit Inventory, Accounting Stock consumed, Revenue recognized
Worker Check-in HR Attendance recorded with GPS

💡 Integration Best Practices

Keep Data Synchronized

Changes in customer information should be made in the Sales/CRM module. The maintenance module inherits this data automatically.

!

Inventory Accuracy

Always record actual materials used during visits. This ensures accurate inventory levels and proper cost allocation to contracts.

i

Access Rights

Users only see integration data relevant to their role. Workers see inventory, managers see financials, accountants see full cost analysis.

ℹ️ Understanding the Customer Journey

i

What is a Customer Journey?

The customer journey maps every touchpoint between the customer and our service - from initial inquiry to contract renewal. Understanding this journey helps us deliver exceptional service at every stage.

🗺️ Journey Diagram

Customer Journey Diagram
Click to view full size

📍 Journey Phases

1

Discovery & Inquiry

Customer learns about our services and makes initial contact.

Customer Actions:
  • Searches for pool maintenance services
  • Visits website or contacts via phone
  • Requests information about services
Our Response: Sales person contacts customer within 24 hours to schedule inspection
2

Inspection Visit

Technical assessment of the customer's pool.

Customer Experience:
  • Receives confirmation call/SMS before visit
  • Meets with inspection team at scheduled time
  • Gets detailed explanation of pool condition
  • Receives professional recommendations
Deliverable: Detailed inspection report with photos and recommendations
3

Quotation & Decision

Customer receives and evaluates service options.

Customer Actions:
  • Reviews quotation with package options
  • Asks questions about services included
  • Compares package features and pricing
  • Makes decision and confirms contract
Support Available: Sales team available to explain packages and answer questions
4

Contract Activation

Contract is confirmed and service begins.

Customer Receives:
  • Contract confirmation document
  • Invoice for payment processing
  • Schedule of upcoming visits
  • Contact information for support
First Visit: Scheduled within 1 week of contract confirmation
5

Regular Service

Weekly maintenance visits throughout the contract period.

Customer Experience:
  • Receives notification before each visit
  • Worker arrives at scheduled time
  • Service is performed professionally
  • Visit completion confirmation received
Tracking: Customer can track visit status and history through the portal
6

Renewal & Loyalty

Contract renewal and ongoing relationship.

What Happens:
  • Reminder sent 30 days before contract end
  • Renewal options presented with loyalty benefits
  • Opportunity to upgrade package
  • Feedback collected for service improvement
Loyalty Benefit: Renewing customers receive priority scheduling and special offers

📞 Customer Touchpoints

Touchpoint Channel Handled By Response Time
Initial Inquiry Phone, Website, WhatsApp Sales Person Same day
Inspection Scheduling Phone, SMS Sales Person Within 24 hours
Quotation Follow-up Email, Phone Sales Person Within 48 hours
Visit Notifications SMS, WhatsApp System (Automated) 24h before visit
Service Issues Phone, WhatsApp Maintenance Manager Within 4 hours
Billing Questions Phone, Email Accountant Within 24 hours
Renewal Reminder Phone, Email Sales Person 30 days before

💡 Ensuring Customer Satisfaction

Communication is Key

Keep customers informed at every stage. Proactive communication about schedules, changes, and service completion builds trust and loyalty.

!

Handle Issues Quickly

When problems arise, respond immediately. A quick resolution to issues can turn a negative experience into a positive one.

i

Collect Feedback

Regularly ask customers for feedback after visits and at contract renewal. Use insights to continuously improve service quality.

⚠️

Important: This documentation reflects actual business operations

Based on comprehensive interviews with stakeholders across Installation, Periodic Maintenance, and Emergency departments, this v2.0 documentation replaces the original workflow with how the business actually operates, including newly identified roles, processes, and three distinct business lines.

N
New - Not in original documentation
C
Changed - Modified from original
E
Existing - Same as original

📋 Key Changes Summary

Aspect v1.0 (Original) v2.0 (Actual Reality) Status
Business Lines Single "Maintenance" workflow 3 separate lines: Installation, Periodic Maintenance, Emergency New
User Roles 5 generic roles 14 specific roles with clear responsibilities Changed
Inspection Phase Always required for all services Conditional - only for new installations without plans (90% of cases) Changed
Contract Timing Created immediately on payment Created AFTER first visit for periodic maintenance Changed
Visit Approval Upper Manager pre-approval required Teams self-manage schedules, post-verification only Changed
Coordinator Role Not documented CRITICAL - Central hub managing 100+ contracts each, 3 coordinators New
Team Assignment Random per visit Geographic permanence - same teams serve same areas Changed
Materials Process Worker requests items per visit Supervisor requests bulk materials weekly/bi-weekly, distributes to teams Changed
Customer Sources Generic inquiry 3 distinct sources: Installation handover (80%), Emergency referral (20%), Direct inquiry New
Renewal Process Not documented Accountant creates demand, Coordinator follows up with customer calls New

🏢 Three Business Lines Overview

Three Business Lines Architecture
Click to view full size

Business Line Breakdown

🏗️

Installation Department

New Pool Installation Projects

  • Fiberglass pools (80%)
  • Concrete pools (20%)
  • Jacuzzi, Sauna, Water Features
  • 2-Year warranty included
  • After warranty → 80% convert to Periodic Maintenance
🔧

Periodic Maintenance

Contract-Based Maintenance Services

  • 2 visits per week standard
  • 3/6/12 month packages
  • 300-400+ active contracts
  • 12-14 teams, 2 workers each
  • Geographic zone-based assignment
🚨

Emergency Maintenance

One-Time Repairs & Inspections

  • Technical inspections (150 SAR)
  • Equipment repairs
  • Post-warranty service
  • 20% refer to Periodic Maintenance
  • Escalation point for equipment faults

👥 Complete User Roles (14 Roles)

Organizational Structure
Click to view full size

Critical Roles Identified

Role Department Key Responsibilities Criticality
Coordinator (المنسق) Periodic Maintenance Customer-facing, visit tracking, renewal monitoring, team assignment, capacity management (3 coordinators × 100+ contracts each) CRITICAL
Installation Coordinator Installation Project tracking, scheduling, materials coordination, multi-stage execution management CRITICAL
Installation Ops Supervisor Installation Material release verification (contract vs drawing, stock, codes, pricing) CRITICAL
Wijdan (Administrative Assistant) Periodic Maintenance Receives handovers, coverage validation, quotation prep, contract creation CRITICAL
Salem (Quotation Reviewer) Installation Quality gate for all installation quotations before customer delivery CRITICAL
Khalid (Customer Relations Officer) Periodic Maintenance Signature workflow, contract distribution, archive management Important
Accountant Support Enhanced role: Payment verification, activation triggers, first visit recording, renewal invoices Important

📍 Coordinator Role Detail

Coordinator Role Detail
Click to view full size

Most Critical Role in Periodic Maintenance

Current Tools (Must Replace): Individual Excel files, WhatsApp photo documentation, phone calls for renewals

Metrics Owned: Active customers per coordinator, stopped/paused customers, contract renewal rate, team utilization rate

🗺️ Geographic Organization

Geographic Zones & Team Distribution
Click to view full size

Three Service Zones

  • Zone 1: East Riyadh + Part North - Coordinator: Mohammed, 4-5 teams (8-10 workers)
  • Zone 2: Complete North Riyadh - Coordinator: Colleague 2, 4-5 teams (OVERTIME ZONE - high density)
  • Zone 3: West + South Riyadh - Coordinator: Ibrahim, 3-4 teams (growing area, room for expansion)
  • Excluded Areas: Villages (قرى), remote provinces, uncovered areas - Auto-reject

🏗️ Complete Installation Workflow

Complete Installation Workflow
Click to view full size

Four Main Phases

📋

Phase 1: Inspection & Quotation

90% require site inspection (150 SAR). Engineer Hamoud conducts visit, creates specifications, Salem reviews quotation.

💰

Phase 2: Contract & Payment

50% down payment required before work order creation. Accountant confirms payment triggers execution.

🔨

Phase 3: Multi-Stage Execution

4 stages: Internal piping, External connections, Electrical, Equipment install. Common 1-6 month customer delays between stages.

Phase 4: Quality & Handover

Supervisor pre-inspection required. Final quality check, customer signature, handover to Periodic Maintenance via WhatsApp group.

📐 Inspection Process Detail

Inspection Process by Engineer Hamoud
Click to view full size

Inspection Outputs

  • Measurements: Pool dimensions, volume calculation, equipment room specifications
  • Equipment Requirements: Filter size (24"/30"/36" based on volume), pump HP, number of spotlights
  • Features: Pool type (Fiberglass 80%/Concrete 20%), water system (Skimmer/Overflow/Infinity), heater type
  • Site Challenges: Access restrictions, excavation issues, municipal requirements
  • Documentation: Technical specifications sent to Customer Service via WhatsApp

Bundled Products Feature (Highly Appreciated)

Bundled Products Feature
Click to view full size

System Auto-Adds Complete Product Sets

When Customer Service selects a filter size, the system automatically includes: Filter unit, sand bags (quantity based on size), matched pump, valves, pressure gauges, spotlights, accessories, fittings, control panel, pipes.

Quality Gate: Salem reviews all quotations to verify filter size, included accessories, pricing, and timeline before customer delivery.

📊 Installation Coordinator Workflow

Installation Coordinator Workflow
Click to view full size

Critical Challenge: Customer Delay Period

⏸️

VERY COMMON: 1-6 Month Delays Between Stages

Reasons: Villa construction not complete, plastering/painting pending, pool needs filling, customer financial delay

Problem: Cloud deletes historical reports after 90 days. After 3-6 month delay, customer calls for status but coordinator cannot access old data.

Current Workaround: Coordinators manually save reports to local laptop

System Requirement: Permanent historical record storage, not cloud-based auto-deletion

🛡️ Material Release Quality Gates (CRITICAL)

Material Release Quality Gates
Click to view full size

Installation Operations Supervisor - Last Verification Layer

Quote: "If we didn't see anything, there will be a lot of mistake"

Gate 1: Contract-Drawing Match (Stop if mismatch: Contract says Skimmer but Drawing shows Overflow)

Gate 2: Stock Availability (Problem: Contracts don't verify stock before finalization)

Gate 3: Item Code Validation (Problem: Contracts use 3-4 year old codes, procurement updated numbers)

Gate 4: Price Verification (Common: Contract 100 SAR vs Actual 1600 SAR - who pays difference?)

📥 Three Customer Acquisition Sources

Three Customer Acquisition Sources
Click to view full size

Customer Sources Breakdown

  • Source 1: Installation Handover (80%) - Installation project completes → Supervisor sends handover via WhatsApp group الإشراف والتسليم → Wijdan receives
  • Source 2: Emergency Referral (20%) - Technical inspection 150 SAR → Pool assessed suitable → Referred to Wijdan
  • Source 3: Supervisor Inspection (Rare) - Free initial assessment for simple cases, recommend paid inspection for complex
  • Critical Gate: Coverage Validation by Wijdan - Accept: Within Riyadh covered areas | Reject: Villages, remote provinces, uncovered

📜 Contract Creation Workflow (AFTER First Visit)

Contract Creation Workflow
Click to view full size

Critical Business Rule

Contract NOT Created Until AFTER First Visit

Flow: Payment → Accountant activation → Coordinator assigns team → First visit executed → Team sends photos via WhatsApp → Coordinator confirms → Accountant records actual start date → THEN contract created

Why? Customer may not be available on planned date, pool may need repairs, new construction not ready, emergency referrals have pending work

Real Example: Payment Jan 1, First Visit Jan 20 (customer not ready). Contract period: Jan 20, 2026 - Jan 19, 2027 (not Jan 1 - Dec 31, avoiding charging for 19 days of no service)

Why Contract After First Visit (Critical Business Rule)

Why Contract After First Visit
Click to view full size

Business Impact

  • ✅ Accurate Billing Cycles: Contract period matches actual service delivery
  • ✅ No Customer Disputes: Customer not charged for days before service started
  • ✅ Flexibility: Accommodate customer scheduling needs
  • ⚠️ Trade-off: 2-3 weeks delay between payment and signed contract, but worth it for accuracy

🔄 Self-Managed Visit Execution (NO Pre-Approval)

Self-Managed Visit Execution
Click to view full size

Key Process Changes

Aspect Original Documentation Actual Process
Approval Pre-approval required before each visit NO approval needed - Teams self-manage based on predetermined schedule
Schedule Created per visit Teams know assigned areas, specific days for each neighborhood, bi-weekly frequency
Verification Pre-visit check POST-visit verification via WhatsApp photos - Coordinator reviews quality
Equipment Faults Team repairs Team ONLY observes, reports to Coordinator, escalated to Emergency Maintenance
Customer Not Available Not documented Team calls Coordinator → Coordinator tries alternate numbers → WhatsApp notification → Reschedule

📊 Coordinator Dashboard Requirements

Coordinator Dashboard Requirements
Click to view full size
⚠️

Currently: Individual Excel Files - Need: Centralized System

View 1: Active Customers - Filter by status (Active/Stopped/Expiring), team, zone. Show customer name, location, team assigned, contract dates, visit dates

View 2: Visit Tracking - Today's visits (completed/pending/customer not available), weekly view, pending confirmations, alerts

View 3: Team Capacity - Utilization per team (capacity status: green/yellow/red), geographic coverage map, overtime tracking

View 4: Renewals - Expiring in 30/15/7 days, expired (grace period), renewal status tracking

🔁 Proactive Renewal Process

Proactive Renewal Process
Click to view full size

Renewal Workflow

  • Dual Monitoring (Need to Unify): Coordinator reviews Excel weekly + Accountant tracks in system (Risk: If both miss, renewal lost)
  • Trigger: 30-45 days before expiration
  • Accountant Actions: Create renewal invoice (مطالبة), typically 3-5% annual increase (inflation, chemical costs), send to customer, notify coordinator
  • Coordinator Actions: Call customer, confirm invoice received, remind expiry, explain price changes, encourage renewal, address concerns
  • If Renewed: Payment → Accountant confirms → New contract period starts seamlessly, no service interruption
  • If Declined: 2-3 follow-up attempts → Track reason (expensive, moving, self-clean, competitor) → Last visit on expiry → Status = Stopped → Team has capacity for new customer

📈 Renewal Success Factors

Renewal Success Factors
Click to view full size

System Requirements for Renewals

  • ✅ Automated expiry alerts (45/30/15/7 days before)
  • ✅ Renewal invoice auto-generation
  • ✅ Coordinator task assignment ('Call customer about renewal')
  • ✅ Outcome tracking (Renewed / Declined / Pending)
  • ✅ Reason capture if declined
  • ✅ Revenue forecasting based on renewal pipeline

🤝 Installation → Periodic Maintenance Handover

Installation to Periodic Maintenance Handover
Click to view full size

Handover Process

  • Installation Side: Supervisor pre-delivery inspection → Customer signs acceptance → Prepare handover docs (photos, delivery doc, contact, location) → WhatsApp group الإشراف والتسليم
  • Periodic Maintenance Side: Wijdan receives notification → Extract info → Coverage validation (CRITICAL GATE) → Accept/Reject → Prepare quotation → Send via Customer Service
  • Customer Journey: Receives quotation → Decision → If pays → Standard periodic maintenance workflow
  • 80% Conversion Rate: Most installation customers convert to periodic maintenance after 2-year warranty

💡 System Requirements for Handover (Replace WhatsApp)

System Requirements for Handover
Click to view full size

Issues with Current WhatsApp Process

  • ❌ No formal tracking
  • ❌ Manual data re-entry
  • ❌ Photos scattered in chat
  • ❌ No audit trail
  • ❌ Depends on personal phones

New Odoo Handover Module Benefits

  • ✅ Zero manual data entry (auto-populated from install project)
  • ✅ Complete audit trail
  • ✅ Photos stored in system
  • ✅ Auto coverage validation (in/out of coverage detected)
  • ✅ Faster quotation generation (one-click)
  • ✅ No WhatsApp dependency

📦 Team Assignment Logic

Team Assignment Logic
Click to view full size

Assignment Process

  1. Identify Geographic Zone: East/North/West based on customer address
  2. Check Team Capacity: In that zone, which teams have availability?
  3. Assign to Team: Match customer to team with capacity
  4. PERMANENT Assignment: Same team serves customer for entire contract duration

Schedule Pattern

  • Saturday: First visit to neighborhoods 1-10
  • Wednesday: Second visit to same neighborhoods
  • Sunday: First visit to neighborhoods 11-20
  • Thursday: Second visit to same neighborhoods
  • Tuesday: MID-WEEK BREAK - Training at warehouse

🎯 Customer Journey (Actual Reality)

Customer Journey Actual Reality
Click to view full size

Three Customer Paths

1️⃣

Path 1: New Installation (20% of business)

Customer inquiry → Site inspection 150 SAR → Quotation & contract → Installation project 2-6 months → 2-year warranty → Handover to Periodic Maintenance

2️⃣

Path 2: Direct Periodic Maintenance

Emergency inspection 150 SAR → Pool assessment → If suitable: Referral to Periodic Maintenance → Ongoing contract service

3️⃣

Path 3: Emergency Only

Equipment problem → Repair service → One-time payment (no contract)

🎯 Critical System Requirements

Area Current Pain Point System Requirement Priority
Coordinator Dashboard Individual Excel files, no central visibility Centralized dashboard: Active customers, visit tracking, team capacity, renewals CRITICAL
WhatsApp Handover No tracking, manual re-entry, photos scattered Odoo handover module: Auto data transfer, photo storage, coverage validation CRITICAL
Historical Records Cloud deletes after 90 days, coordinators save locally Permanent storage: All project history accessible indefinitely CRITICAL
Contract Timing Risk of inaccurate start dates Contract auto-generated AFTER first visit confirmation CRITICAL
Material Quality Gates Manual verification, old item codes, price mismatches Automated validation: Stock check, current codes, price verification High
Renewal Tracking Dual monitoring (Coordinator Excel + Accountant system), risk of missed renewals Unified system: Auto alerts 45/30/15/7 days, task assignment, outcome tracking High
Bundled Products Exists and appreciated Maintain and enhance: Auto-add complete product sets based on filter size High
Geographic Coverage Manual validation by Wijdan Auto-detect: Address validation against covered zones, auto-reject uncovered Medium

📚 Documentation Changes Summary

What's New in v2.0

  • 20 New Diagrams: Complete visual documentation of all three business lines
  • 14 User Roles: Comprehensive role documentation with responsibilities
  • 3 Business Lines: Separate workflows for Installation, Periodic Maintenance, Emergency
  • Geographic Organization: 3 zones, 12-14 teams, permanent assignments
  • Coordinator Role: Most critical role in Periodic Maintenance - central hub
  • Contract Timing Rule: Created AFTER first visit (business-critical change)
  • Self-Managed Visits: No pre-approval, post-verification via WhatsApp
  • Proactive Renewals: 30-45 day advance process, coordinator follow-up
  • Quality Gates: Installation Ops Supervisor 4-gate verification
  • Handover Process: WhatsApp group → Need Odoo module replacement

What Changed from v1.0

  • Removed: Periodic Maintenance team handling inspections (actually Emergency department)
  • Removed: Upper Manager approval for visits (teams self-manage)
  • ✏️ Changed: Contract created BEFORE first visit → AFTER first visit
  • ✏️ Changed: Random team assignment → Geographic permanence
  • ✏️ Changed: Per-visit material requests → Bulk supervisor distribution
  • Added: Three business lines (Installation, Periodic, Emergency)
  • Added: Coordinator role (3 coordinators × 100+ contracts)
  • Added: Customer acquisition sources (80% Installation, 20% Emergency)
  • Added: Renewal process (Accountant + Coordinator collaboration)
  • Added: Multi-stage installation with common customer delays

Next Steps

  1. Review with Stakeholders: Validate all 20 diagrams with department managers
  2. Arabic Translation: Create Arabic versions of all diagrams and documentation
  3. Odoo Module Design: Use v2.0 as blueprint for Odoo implementation
  4. Priority Implementation: Start with critical pain points (Coordinator dashboard, handover module, historical records)
  5. Phased Rollout: Installation department first, then Periodic Maintenance, then Emergency integration
🛠️

Implementation-Focused Diagrams

These diagrams show exactly what needs to be built in Odoo. Each step is color-coded to indicate whether it uses Standard Odoo, the Custom Maintenance Module (already built), or requires New Customization.

🎨 Implementation Color Legend

🟢 Standard Odoo

Uses built-in Odoo features (Sales, CRM, Accounting, Inventory). No custom development needed.

🔵 Custom Maintenance Module

Already built custom module. Handles contracts, visits, assignments after payment confirmation.

🟠 New Customization Needed

Requires new development: fields, views, reports, scheduled actions, or security groups.

⚪ Manual / External

Physical or external processes (WhatsApp, phone calls, paper documents). Not in Odoo.

📋 Implementation Summary

Category Items Status
Standard Odoo Sales Quotations, Invoicing, Payments, CRM Leads, Inventory Transfers Ready
Custom Module Contracts, Visits, Coordinator Assignment, Visit Completion Built
New Fields Area/Zone, Secondary Phone, Lead Source, Contract Status, Photo Attachments To Build
New Views Coordinator Dashboard, Relations Dashboard, Team Assignment View To Build
New Reports Contract PDF (QWeb), Performance Report To Build
Scheduled Actions Contract Expiry Check (ir.cron), Email Alerts To Build
Security Groups Coordinator, Supervisor, Admin Assistant, Customer Relations, Customer Service To Build

🔄 Complete Implementation Workflow

Main Workflow Implementation Diagram
Click to view full size

📝 Phase-by-Phase Implementation

Phase 0: Customer Onboarding

New: Lead Source Field, Area/Zone Field in CRM

Odoo: CRM Leads, Lost/Qualified status

Phase 1: Quotation & Payment

Odoo: Sales Quotations, Orders, Invoicing, Payments

No customization needed

Phase 2: Contract Activation

Custom Module: Contract creation, Coordinator assignment, Visit scheduling

Already built

Phase 3: Contract Signature

New: QWeb Report Template, Contract Status Field, Attachment Field

Phase 4: Ongoing Visits

Custom Module: Visit scheduling, completion

New: Visit Status (no-access), Photo Attachments

Phase 5: Renewal

New: ir.cron for expiry check, Email templates

Odoo: Accounting for renewal invoices

👥 User Roles Implementation

User Roles Implementation Diagram
Click to view full size

🔐 Security Groups to Create

Role Type Permissions Needed
Sales Person Odoo Standard Odoo Sales → Sales Group
Accountant Odoo Standard Odoo Accounting → Accountant Group
Warehouse Staff Odoo Standard Odoo Inventory → Inventory Group
Maintenance Manager Custom Module Full access to Maintenance module
Worker Team Custom Module View/Edit assigned visits only
Coordinator New Dashboard view, Customer assignment, Visit tracking
Supervisor New Area-based scheduling, Team management
Admin Assistant New Limited access, Contract PDF generation
Customer Relations New Contract routing, Coordinator assignment
Customer Service New Communication access, Send quotations

📥 Customer Onboarding Workflow

Customer Onboarding Implementation Diagram
Click to view full size

🔧 Required Customizations

Lead Source Field

Add selection field to CRM Lead: Installation Handover, Emergency Maintenance Referral

Area/Zone Field

Add Many2one field to Partner/Lead for coverage validation

CRM Lost/Qualified

Use standard Odoo CRM stages - no customization needed

Sales Quotation

Use standard Odoo Sales - no customization needed

📄 Contract Signature Flow

Contract Signature Implementation Diagram
Click to view full size

🔧 Required Customizations

QWeb Report Template

Create contract PDF template with auto-filled customer data, duration, value, visits count

Contract Status Field

Selection: Pending Relations → With Coordinator → With Supervisor → Signed

Relations Dashboard

Kanban view for Customer Relations to see pending contracts

Signed PDF Attachment

Binary field to upload scanned signed contract

🏠 Visit Execution Workflow

Visit Execution Implementation Diagram
Click to view full size

🔧 Required Customizations

Area Field on Contract

Many2one field for area-based filtering (North, South, East, etc.)

Secondary Phone Field

Additional phone field for alternate contact numbers

Visit Status Field

Add "No Access" status to track unreachable customers

Photo Attachments

Binary field for visit completion photos

Escalation Button

Action button to escalate equipment faults to Emergency Maintenance

📋 Coordinator Daily Workflow

Coordinator Workflow Implementation Diagram
Click to view full size

🔧 Required Customizations

Coordinator Dashboard

Kanban/list view showing today's visits, my customers, pending actions

Customer Assignment Field

Many2one linking customers to assigned coordinator

Multiple Phone Fields

Store primary, secondary, alternate phone numbers

Activity Log

Chatter integration for communication history

Expiring Contracts Widget

Dashboard widget showing contracts expiring in 30 days

Performance Report

Report view showing visits completed, customer satisfaction

🔁 Renewal Process Workflow

Renewal Process Implementation Diagram
Click to view full size

🔧 Required Customizations

Scheduled Action (ir.cron)

Daily job to check contracts expiring in 30 days

Email Template

Renewal reminder email sent to coordinators

Date Filter View

List view filtered by expiry date range

Customer Inactive Status

Field to mark non-renewed customers as inactive

Invoice Creation

Use standard Odoo Accounting - no customization

Contract Extension

Existing custom module handles contract renewal

📦 Inventory Process Workflow

Inventory Process Implementation Diagram
Click to view full size

🔧 Required Customizations

Material Calculator

View to calculate material needs based on active contracts

Bulk Request Form

Form to request multiple products at once

Team Assignment View

View to distribute materials to teams by route

Digital Receipt Confirmation

Acknowledgement field for team material receipt

Stock Alert

Notification when team reports low stock

Internal Transfers

Use standard Odoo Inventory operations

🎨 Implementation Colors

🟢 Standard Odoo

Built-in Odoo features - no development needed

🔵 Custom Maintenance Module

Already built custom module

🟠 New Customization Needed

Requires new development

⚪ Manual / External

Physical processes outside Odoo

🎨 Role Colors (Original Diagrams)

Sales Person
Accountant
Maintenance Manager
Worker
Inventory Keeper
Upper Manager
System / Automatic

⚠️ Executive Summary

!

Critical Finding

There is a FUNDAMENTAL DISCONNECT between the implemented system and actual operations. The system was designed for an idealized workflow that does NOT match reality.

Key Statistics

Metric Finding
Missing Critical Roles 4 roles (Coordinator, Customer Relations Officer, Administrative Assistant, Installation Coordinator)
Process Mismatches 8 major workflow differences
Manual Workarounds Required 7 documented workarounds
System Bypass Rate Estimated 60-70% of operations happen outside the system
Primary Tools Actually Used WhatsApp (90%), Excel (80%), Word (70%)
System Adoption Rate Estimated 30-40%

🎯 Gap Analysis Framework

For each gap identified, we document the following attributes:

Attribute Description
Gap ID Unique identifier (e.g., GAP-ROLE-001)
Severity Critical / High / Medium / Low
Category Role / Process / Data / Integration / UX
Current State What actually happens in operations
Implemented State What the system provides
Gap Description The specific mismatch
Business Impact Effect on operations, revenue, efficiency
Workaround How staff currently handle this
Recommended Fix What needs to be implemented
Priority P0 (Critical) / P1 (High) / P2 (Medium) / P3 (Low)

💰 Financial Impact Summary

Gap ID Financial Impact Annual Estimate (SAR)
GAP-PROC-005 Missed renewals 375,000
GAP-DATA-001 Inefficient operations 150,000
GAP-INT-001 Triple data entry waste 200,000
GAP-ROLE-001 Coordinator inefficiency 100,000
GAP-UX-002 WhatsApp dependency risks 50,000
TOTAL ~875,000 SAR/year

📊 Operational Impact Summary

Impact Category Severity Description
Staff Productivity 🔴 Critical 60-70% of work happens outside system (Excel, WhatsApp)
Data Quality 🔴 Critical Fragmented data, no single source of truth
Customer Experience 🟠 High Manual processes lead to delays, errors
Management Visibility 🔴 Critical Cannot answer basic questions about business
Scalability 🔴 Critical Cannot grow business with current manual processes
Risk & Compliance 🟠 High WhatsApp dependency, no audit trails

🔴 GAP-ROLE-001: Coordinator (المنسق) - Periodic Maintenance

!

Severity: CRITICAL

The MOST CRITICAL operational role in periodic maintenance is completely missing from the system design. This role is the hub of all coordination between customers, teams, supervisors, accountants, and management.

Current State

  • 3 Coordinators manage all periodic maintenance operations
  • Primary customer contact for all communication
  • Track visits via Excel sheets (individual, not centralized)
  • Monitor contract expiries manually
  • Follow up on renewals proactively
  • Handle "customer not available" situations
  • Assign teams to customers based on geography and capacity
  • Track team capacity (can team accept new customers?)
  • Archive WhatsApp photos from visits
  • Coordinate between Supervisors and Accountant

Implemented State

!

Role does not exist in the system. System only has: Sales Person, Maintenance Manager, Worker, Accountant, Inventory Keeper

Business Impact

  • Coordination breakdown: No designated person in system to manage customer relationships
  • Data silos: Each coordinator maintains separate Excel files with no backup
  • Knowledge risk: If coordinator leaves, all customer knowledge lost
  • No succession planning: New coordinators trained by shadowing only
  • Missed renewals: Manual tracking leads to 5%+ missed renewal opportunities
  • Revenue loss: Estimated 375,000 SAR/year from missed renewals alone

Recommended Fix

  1. Create "Coordinator" role in Odoo with permissions:
    • View assigned customers
    • Track visit completion
    • Monitor contract expiries (with automated alerts)
    • Assign teams to customers
    • View team capacity dashboard
    • Access customer communication history
  2. Build Coordinator Dashboard showing:
    • Active customers (with filters by status, area, team)
    • Upcoming visits (by team, by day)
    • Contracts expiring soon (30/15/7 day alerts)
    • Team capacity utilization
    • Stopped/paused customers
    • Visit completion rate by team
  3. Replace Excel sheets with centralized database
Priority: P0 - CRITICAL (Must fix immediately)

🔴 GAP-ROLE-002: Installation Coordinator (المنسق - التركيبات)

!

Severity: CRITICAL

Critical project coordination role missing. Installation projects require dedicated coordinators to manage complex multi-stage workflows (payment → inspection → materials → installation → handover).

Current State

  • 3 Installation Coordinators manage installation projects by region:
    • East Riyadh + Part of North Riyadh
    • Full North Riyadh
    • West Riyadh + South Riyadh
  • Track project status: Payment → Engineering → Materials → Execution
  • Schedule engineering inspections with customers
  • Request materials from inventory (through supervisors)
  • Coordinate with engineers, supervisors, technicians
  • Monitor project timeline and customer readiness
  • Manual tracking using Excel due to system search dysfunction

Business Impact

  • Project delays: No centralized tracking of project stages
  • Material waste: Coordinators manually track material requests, leading to over-ordering
  • Customer dissatisfaction: No single point of contact for project updates
  • Inefficient scheduling: Manual coordination of engineers, supervisors, workers
  • Revenue leakage: Projects stall due to poor coordination

Recommended Fix

  1. Create "Installation Coordinator" role with regional assignment capability
  2. Project tracking dashboard showing pipeline stages:
    • Payment Received → Engineering → Materials → Installation → Handover
  3. Automated material request workflow from coordinator to warehouse
  4. Integration with engineer inspection scheduling
  5. Customer communication log
Priority: P0 - CRITICAL

🟠 GAP-ROLE-003: Administrative Assistant (المساعد الإداري)

!

Severity: HIGH

Critical gatekeeper role missing. Administrative Assistant is the first filter for periodic maintenance customers.

Current State

  • Receives pool installation handovers via WhatsApp group "الاشراف التسليم"
  • Validates customer location against coverage areas
  • REJECTS customers outside coverage (villages, remote governorates)
  • Prepares periodic maintenance quotations
  • Prepares formal contracts AFTER first visit confirmed
  • Sends contracts to Customer Relations Officer for signature process

Recommended Fix

  1. Create "Administrative Assistant" role in system
  2. Coverage area database with geocoding:
    • Define service coverage zones
    • Auto-validate customer address against zones
    • Flag out-of-coverage customers with rejection reason
  3. Contract timing rule: "Contract can only be created AFTER first visit confirmed"
  4. System-based handover workflow (replace WhatsApp group)
Priority: P1 - HIGH

🟠 GAP-ROLE-004: Customer Relations Officer (مسؤول علاقات العملاء)

!

Severity: HIGH

The signature collection process is a multi-step physical workflow not supported by the system.

Current State

  • Khaled Al-Zahrani manages contract signature process
  • Receives prepared contracts from Administrative Assistant
  • Identifies which Coordinator owns the customer (based on area/team)
  • Distributes contract through chain: Coordinator → Supervisor → Team
  • Team collects customer signature during regular visit
  • Receives signed contract back through reverse chain
  • Archives signed contracts in company records

Contract Journey

Forward: Admin → Khaled → Coordinator → Supervisor → Team → Customer

Reverse: Customer → Team → Supervisor → Coordinator → Khaled → Archive

Recommended Fix

  1. Create "Customer Relations Officer" role
  2. Digital signature workflow:
    • Generate contract in system
    • Send to customer via email/WhatsApp with e-signature link
    • Customer signs digitally
    • Auto-archive signed contract
    • Notify all stakeholders
  3. OR: Physical signature tracking:
    • Contract status: "Sent to Coordinator" → "With Supervisor" → "With Team" → "Signed" → "Archived"
    • QR code on contract for tracking
    • Mobile scan to update status
Priority: P1 - HIGH

🔄 Critical Process Flow Gaps

GAP-PROC-001: Periodic Maintenance Contract Timing

!

Severity: CRITICAL

System creates contract IMMEDIATELY on payment. Reality: Contract created 2-3 WEEKS LATER after first visit confirmed.

Implemented Workflow

  1. Customer accepts quotation
  2. Customer pays invoice
  3. System IMMEDIATELY creates maintenance contract
  4. Contract start date = payment date
  5. Visits generated from contract

Actual Workflow

  1. Customer accepts quotation
  2. Customer pays invoice
  3. Accountant confirms payment → Sends activation to Coordinator
  4. Coordinator assigns to Supervisor
  5. Supervisor arranges FIRST VISIT with team
  6. Team performs FIRST VISIT
  7. Team sends photos to Coordinator (WhatsApp)
  8. Coordinator confirms first visit to Accountant
  9. ONLY NOW: Accountant sends data to Admin Assistant
  10. Admin Assistant creates formal contract
  11. Contract goes through signature chain (5-7 days)
  12. Contract archived

Real-World Example

Customer pays: January 1

First visit: January 20 (customer not ready until then)

Contract created: January 22

Contract should be: January 20 - January 19 (next year)

System would create: January 1 - December 31

Result: Customer billed for 19 days of no service

Priority: P0 - CRITICAL

🔴 GAP-PROC-005: Contract Renewal Process Not Supported

!

Severity: CRITICAL

No renewal workflow exists in system. Renewal is a DISTINCT PROCESS from new customer acquisition.

Business Impact

  • Missed renewals: No automated alerts = 5%+ renewals missed
  • Manual tracking burden: Both Coordinator AND Accountant track manually (inefficient)
  • Revenue loss: Estimated 375,000 SAR/year from missed renewals
  • Customer churn: No proactive renewal campaigns

Renewal-Specific Business Rules Missing

  • Price increase handling (typically 3-5% annual increase)
  • Service history preservation (customer has existing visit history)
  • Team continuity (customer keeps same team)
  • Negotiation tracking (customer may negotiate terms)
  • Grace period handling (customer pays late, contract already expired)

Recommended Fix

  1. Automated Renewal Workflow:
    • 30 days before expiry: System alerts Accountant + Coordinator
    • Accountant creates renewal invoice (one-click, pre-populated from existing contract)
    • System sends invoice to customer (email/SMS)
    • Coordinator receives task: "Call customer about renewal"
    • Customer payment links to renewal (not new contract)
  2. Renewal Dashboard:
    • Expiring in 30 days
    • Expiring in 15 days
    • Expiring in 7 days
    • Expired (grace period)
    • Renewal success rate metrics
Priority: P0 - CRITICAL

🎯 Implementation Status

!

Current System Adoption: 30%

Root Cause: Current implementation was designed for an idealized workflow that does not match actual business operations in 8 critical areas.

Critical Gaps Summary

Business Area Implementation Gap Business Impact Odoo Solution
User Roles 4 critical roles missing 70% work outside system Create custom user groups with specific permissions
Workflow Logic 8 process mismatches Manual workarounds for 60% of operations Customize Sales, Project, and Field Service modules
Contract Timing Immediate vs. After First Visit Customer disputes, billing errors Custom contract workflow with approval states
Visit Management Pre-approval vs. Self-managed Would create 800+ unnecessary approvals/week Remove approval, use post-visit confirmation
Materials Process Per-visit vs. Bulk distribution 600-800 redundant requests/week Custom material request workflow for supervisors
Renewal Process Non-existent 375,000 SAR/year lost revenue Automated renewal workflow with alerts
Team Assignment Random vs. Geographic permanence Customer dissatisfaction, inefficiency Custom geographic assignment logic
Data Integration Dual systems (Oracle + Cloud) Triple data entry, 90-day deletion Unified Odoo with permanent retention

🧩 Recommended Odoo Modules & Customizations

Standard Modules (80% coverage)

  • CRM - Customer Relationship Management
  • Sales - Quotations, Orders, Contracts
  • Project - Multi-stage installation tracking
  • Field Service - Periodic maintenance visits
  • Inventory - Stock management, warehouse
  • Accounting - Payments, invoicing, renewals
  • HR - Team management

Custom Modules Required (20%)

  1. Swimming Pool Installation Management
  2. Periodic Maintenance Operations
  3. Geographic Zone & Team Management
  4. Material Release Quality Gates
  5. Contract Signature Workflow
  6. Renewal & Retention Management
  7. Mobile Field Service App

👥 User Roles & Permissions Required

Installation Coordinator (res.groups.installation_coordinator)

Access Rights:

  • Read: All installation projects
  • Write: Own assigned projects
  • Create: Material requests, schedule updates
  • Delete: None

Menu Access:

  • Installation Dashboard
  • Project Pipeline (Payment → Engineering → Materials → Execution)
  • Material Request Creation
  • Engineer Scheduling
  • Customer Delay Management

Periodic Maintenance Coordinator (res.groups.maintenance_coordinator)

Menu Access:

  • Coordinator Dashboard
  • Active Customers (with filters: Active, Stopped, Expiring)
  • Visit Tracking (Today, This Week, Pending Confirmation)
  • Team Capacity Management
  • Renewal Pipeline
  • Customer Communication Log

Notifications:

  • New customer activation
  • Visit photos uploaded
  • Contract expiring (30/15/7 days)
  • Customer not available
  • Equipment fault escalation

Geographic Restrictions:

  • Can only see customers in assigned zone (East, North, or West/South)

Administrative Assistant (res.groups.maintenance_admin)

Menu Access:

  • Handover Inbox (from installation dept)
  • Coverage Area Map
  • Quotation Creation (from templates)
  • Contract Creation (triggered by first visit confirmation)
  • Customer Service Coordination

Business Logic:

  • Coverage validation: Auto-check address against service zones
  • Contract timing: Cannot create until first visit confirmed (system enforced)

Installation Operations Supervisor (res.groups.installation_supervisor)

Quality Gates (System Enforced):

  1. GATE 1: Contract-Drawing Match
    • System compares: Pool type (skimmer vs overflow), equipment specs
    • If mismatch: Flag for resolution, cannot proceed
  2. GATE 2: Stock Availability
    • System checks: All items in stock?
    • If missing: Suggest alternatives OR hold until restocked
  3. GATE 3: Item Code Validation
    • System verifies: Product codes current?
    • If outdated: Search by name, flag for update
  4. GATE 4: Price Verification
    • System compares: Contract price vs. current cost
    • If difference >5%: Route to accounts for approval

🗺️ Implementation Roadmap

PHASE 1: Foundation (3-4 months)

Goal: Fix critical gaps that prevent basic system usage

Deliverables:

  1. Create missing critical roles (Coordinator, Installation Coordinator)
  2. Fix contract timing workflow
  3. Build unified customer database
  4. Migrate from dual system to unified Odoo
  5. Implement renewal workflow with automated alerts

Success Criteria:

  • Coordinators can use system instead of Excel
  • Contract timing matches reality (after first visit)
  • All customer data in one database
  • Renewal alerts working (no missed renewals)

PHASE 2: Adoption (3-4 months)

Goal: Drive user adoption across all roles

Deliverables:

  1. Mobile app for field workers
  2. Installation handover workflow
  3. Geographic team assignment logic
  4. Visit history with structured reports
  5. Customer Relations Officer workflow
  6. Administrative Assistant coverage validation

Success Criteria:

  • Field workers using mobile app (80%+ adoption)
  • Installation-to-Maintenance handover via system (not WhatsApp)
  • Visit documentation in system (not WhatsApp photos)
  • Team assignments based on geography and capacity

PHASE 3: Optimization (2-3 months)

Goal: Fine-tune and optimize workflows

Deliverables:

  1. WhatsApp integration (if needed)
  2. Bulk material distribution workflow
  3. Customer not available handling
  4. Fault escalation workflow
  5. Advanced reporting and analytics

Success Criteria:

  • 80%+ system adoption across all roles
  • Excel usage minimal (only for ad-hoc analysis)
  • WhatsApp for customer communication only (not internal coordination)
  • Management has real-time visibility into operations

Prioritized Recommendations

P0 - CRITICAL (Must Fix Immediately)

Priority Gap ID Fix Effort Business Impact
P0-1 GAP-ROLE-001 Create Coordinator role with dashboard 3-4 weeks Unblock 60% of operations
P0-2 GAP-PROC-001 Fix contract timing (after first visit) 2 weeks Prevent customer disputes, accurate billing
P0-3 GAP-PROC-005 Implement renewal workflow with alerts 2-3 weeks Recover 375,000 SAR/year lost revenue
P0-4 GAP-DATA-001 Build unified customer database 4-5 weeks Single source of truth, eliminate Excel dependency
P0-5 GAP-DATA-003 Automated expiry alerts 1-2 weeks Prevent missed renewals
P0-6 GAP-INT-001 Migrate from dual system to unified Odoo 8-12 weeks Eliminate triple entry, permanent data retention
P0-7 GAP-ROLE-002 Create Installation Coordinator role 2-3 weeks Installation project tracking

Total P0 Effort: ~22-35 weeks (5-9 months)

🏢 Business Lines Architecture

Business Lines Architecture

🏗️ Installation Department

Services:

  • New Pool Installation Projects
  • Fiberglass Pools (80%)
  • Concrete Pools (20%)
  • Jacuzzi, Sauna, Water Features
  • 2-Year Warranty Included

🔧 Periodic Maintenance

Services:

  • Contract-Based Maintenance
  • 2 Visits per Week Standard
  • 3/6/12 Month Packages
  • 300-400+ Active Contracts
  • 12-14 Teams, 2 Workers Each

🚨 Emergency Maintenance

Services:

  • One-Time Repairs
  • Technical Inspections (150 SAR)
  • Equipment Repairs
  • Post-Warranty Service

👥 Complete User Roles (14 Distinct Roles)

Organizational Structure

Installation & Contracts Department

Role Count Key Responsibilities Status
Customer Service Representative 4 Receive inquiries, create quotations, send via WhatsApp, receive payments ✅ Exists
Installation Coordinator 3 Regional project management, material requests, timeline tracking, currently use Excel 🔴 MISSING
Lead Engineer 1 Site inspections, pool specifications, equipment requirements ✅ Exists
Quotation Reviewer 1 Quality gate: Reviews ALL quotations before sending, final approval authority 🟠 Partial
Installation Operations Supervisor 1-2 CRITICAL QUALITY GATE: Material release verification, pre-installation inspection 🔴 MISSING

Periodic Maintenance Department

Role Count Key Responsibilities Status
Administrative Assistant 1 Receives handovers, coverage validation, quotation prep, contract creation 🔴 MISSING
Coordinator 3 MOST CRITICAL: Customer contact, visit tracking, renewals, team assignment (100+ contracts each) 🔴 MISSING
Supervisor 2-3 Link to teams, bulk materials distribution, quality visits, mid-week training ✅ Exists
Field Teams 12-14 Execute visits (6 days/week), bi-weekly service, geographic fixed areas ✅ Exists
Customer Relations Officer 1 Contract signature workflow, distribution chain management, archives 🔴 MISSING

🗺️ Geographic Organization

Geographic Zones & Team Distribution

Three Geographic Zones

Zone Coordinator Teams Notes
Zone 1: East Riyadh + Part North Mohammed 4-5 teams (8-10 workers) 20+ neighborhoods divided by days
Zone 2: Complete North Riyadh Colleague 2 4-5 teams (8-10 workers) ⚠️ OVERTIME ZONE - High-density area, maximum capacity
Zone 3: West + South Riyadh Ibrahim 3-4 teams (6-8 workers) Growing area, room for expansion
!

Excluded Areas (Auto-Reject)

Villages (قرى), Remote Provinces, Uncovered Areas - customers in these locations are automatically rejected during coverage validation.

🎯 Coordinator Role Detail - MOST CRITICAL

Coordinator Role Detail
!

Why This Role is Critical

3 Coordinators × 100+ contracts each = 300-400 total active contracts managed. This role is the hub of all coordination between customers, teams, supervisors, accountants, and management.

Current Tools (MUST REPLACE)

  • 📊 Excel Files - Individual tracking sheets (no backup, data loss risk)
  • 💬 WhatsApp - Photo documentation, team communication (no audit trail)
  • 📱 Phone - Customer calls, renewal follow-ups (no logging)

Key Metrics Owned

100+
Active Customers per Coordinator
~10%
Stopped/Paused Customers
90%+
Contract Renewal Rate Target
4-5
Teams per Zone

🔄 Complete Installation Workflow

Complete Installation Workflow

The Four Phases

📋 PHASE 1: Inspection & Quotation

Two Options:

  • Option A (10%): Customer has engineering plan → Engineer reviews → Creates specifications
  • Option B (90%): No plan → Site inspection required (150 SAR fee) → Engineer visit → Measurements → Specifications

Quality Gate: Salem reviews ALL quotations before sending to customer

💰 PHASE 2: Contract & Payment

  • Customer accepts quotation
  • Contract generated (Word document)
  • Customer signs contract
  • 50% Down Payment REQUIRED
  • Accountant confirms payment in system
  • Work order created → Installation Coordinator

🏗️ PHASE 3: Multi-Stage Execution

  • Stage 1: Internal Piping (1-3 days)
  • Stage 2: External Connections
  • Stage 3: Electrical & Lighting
  • ⏸️ CUSTOMER DELAY PERIOD: 1-6 MONTHS COMMON
    • Construction completion
    • Plastering, painting
    • Pool filling
    • Customer not ready
  • Remaining 50% Payment REQUIRED
  • Stage 4: Equipment Installation (Pumps, Filters, Heaters)

✅ PHASE 4: Quality & Handover

  • ⚡ Supervisor Pre-Inspection REQUIRED before final install
  • Final installation
  • Quality inspection by supervisor
  • Customer signs delivery document
  • 📱 Handover to Periodic Maintenance via WhatsApp Group "الإشراف والتسليم"

📐 Site Inspection Detail

Inspection Detail

What Engineer Hamoud Does

Activity Details
Measurements
  • Pool space (Length × Width)
  • Desired depth (Shallow + Deep end)
  • Volume calculation (L × W × Avg Depth)
  • Equipment room location + size
Equipment Requirements
  • ≤ 50m³ → Filter 24 inch
  • 51-90m³ → Filter 30 inch
  • > 90m³ → Filter 36 inch
  • Pump HP (based on volume + features)
  • Number of spotlights
Special Features
  • Pool type: Fiberglass (80%) or Concrete (20%)
  • Water system: Skimmer (standard) / Overflow / Infinity
  • Heater needed? (Electric / Gas / Heat Pump / Solar)
  • Additional: Jacuzzi, Waterfall, Fountain
Site Challenges
  • Access restrictions (narrow gates, upper floors)
  • Excavation issues (rocky soil, utilities)
  • Municipal requirements (permits, setbacks)

⚙️ Bundled Products Feature

Bundled Products Feature

HIGHLY APPRECIATED Feature

When Customer Service selects a filter size, the system automatically adds ALL related components. This saves significant time and reduces errors.

Auto-Added Components

  • ✓ Filter Unit (الفلتر)
  • ✓ Sand Bags (أكياس الرمل) - Quantity based on filter size
  • ✓ Pump (المضخة) - Matched to filter
  • ✓ Valves (البكرات)
  • ✓ Pressure Gauges (الدفعات)
  • ✓ Spotlights (الكشافات) - Quantity from engineer
  • ✓ Accessories (الإكسسوارات)
  • ✓ Fittings + Connections
  • ✓ Control Panel
  • ✓ Pipes + Connections

Manual Additions (If Requested)

  • Heater
  • Waterfall/Fountain
  • Jacuzzi
  • Lighting upgrades

Material Release Quality Gates

Material Release Quality Gates
!

Installation Operations Supervisor - Critical Quality Gate

Quote: "If we didn't see anything, there will be a lot of mistakes"

The Four Quality Gates

GATE 1: Contract-Drawing Match

Check: Compare contract specifications vs. drawing specifications

Common Mismatches:

  • Contract: Skimmer / Drawing: Overflow
  • Equipment differences
  • Dimension conflicts

If Mismatch: ❌ STOP - Cannot release until resolved. Coordinate with Drawing Manager and Contract Creator.

GATE 2: Stock Availability

Check: All items in stock?

Problem: Contracts don't verify stock before finalization. Supervisor discovers missing items HERE.

If Missing: ⚠️ Find alternatives, wait for restock, or request contract change.

GATE 3: Item Code Validation

Check: Product codes current?

Problem: Contracts use 3-4 year old codes. Procurement updated numbers. Old codes not in system.

If Invalid: ⚠️ Search by item NAME, find current equivalent, update request.

GATE 4: Price Verification

Check: Contract price vs. current item cost

Common Issues:

  • Contract: 100 SAR / Actual: 1600 SAR
  • 400 SAR difference
  • Who pays?

If Mismatch: ❌ STOP - Get Accounts approval for price difference.

✅ ALL GATES PASSED

Material released to warehouse. Technician can collect and proceed with installation.

🔍 Three Customer Sources

Three Customer Sources

📱 SOURCE 1: Installation Handover (80%)

  1. Installation project completes
  2. Supervisor inspects quality
  3. Customer signs delivery document
  4. WhatsApp Group "الإشراف والتسليم"
  5. Supervisor sends: Pool photo, delivery doc, location
  6. Wijdan receives handover notification

🔧 SOURCE 2: Emergency Referral (20%)

  1. Customer contacts Emergency Maintenance
  2. Technical inspection (150 SAR paid service)
  3. Technician assesses pool condition
  4. If suitable: Referral to Wijdan
  5. If not suitable: Repairs needed first

👁️ SOURCE 3: Supervisor Inspection (Rare)

  1. Supervisor conducts free initial assessment
  2. Simple: Proceed to quotation
  3. Complex: Recommend paid technical inspection
!

Coverage Area Validation - CRITICAL QUALITY GATE

Wijdan validates location:

  • ✅ ACCEPT: Within Riyadh covered areas → Proceed to quotation
  • ❌ REJECT: Villages, remote provinces, uncovered areas → Notify customer

📝 Contract Creation - AFTER First Visit

Complete Contract Workflow
!

CRITICAL BUSINESS RULE

Contract NOT created until AFTER first visit. This is fundamentally different from v1.0 implementation.

Complete Workflow Steps

  1. Quotation accepted by customer
  2. Customer pays contract value
  3. Customer Service forwards payment to Accountant
  4. Accountant confirms payment in system
  5. Accountant sends ACTIVATION to Coordinator
  6. Coordinator determines: Which zone? Which team has capacity? Geographic match?
  7. Coordinator → Supervisor activation
  8. Supervisor → Team first visit assignment
  9. ⭐ FIRST VISIT PERFORMED:
    • Team travels to location
    • If customer not available: Reschedule
    • If available: Perform service, take photos, get signature
    • Send photos to Coordinator via WhatsApp
  10. Coordinator reviews photos + signature
  11. Coordinator confirms first visit → Accountant
  12. Accountant records first visit in system (ACTUAL START DATE)
  13. ONLY NOW: Accountant sends data to Wijdan
  14. Wijdan creates contract (currently manual Word doc - "Would be easier if system-generated")
  15. Contract → Khalid (Customer Relations Officer)
  16. Signature chain: Khalid → Coordinator → Supervisor → Team → Customer
  17. Return chain: Customer → Team → Supervisor → Coordinator → Khalid → Archive

Why Wait for First Visit?

Reason Explanation
Actual Start Date Confirmation System needs REAL activation date, not estimated
Customer Availability Customer may not be available on planned date
New Construction Customer may not be moved in yet. Request delay: "at end of month"
Pool Readiness Pool may need repairs, cleaning, or filling before maintenance can start
Emergency Referrals Pool may still have pending repairs

Visit Execution - Self-Managed Schedules

Visit Execution Workflow

NO Pre-Approval Needed

Teams self-manage based on predetermined schedules. This is a MAJOR difference from v1.0 which required approval for every visit (would create 600-800 approvals/week!).

Predetermined Schedule Pattern

Example: Team 65

  • Saturday: North Riyadh neighborhoods 1-5 (First visit)
  • Wednesday: Same neighborhoods (Second visit)
  • Sunday: North Riyadh neighborhoods 6-10 (First visit)
  • Thursday: Same neighborhoods (Second visit)
  • Tuesday: MID-WEEK BREAK - Training at Warehouse

Visit Execution Steps

  1. Team arrives at customer location
  2. Ring doorbell (1-2 attempts)
  3. If customer doesn't answer:
    • Team calls Coordinator
    • Coordinator tries alternate numbers
    • Coordinator sends WhatsApp: "We came, no one opened"
    • Visit marked: "Customer Not Available"
    • Reschedule arranged
  4. If access granted:
    • Test water (pH, Chlorine)
    • Add chemicals as needed
    • Clean pool surfaces
    • Clean skimmer basket
    • Visual equipment check
  5. If equipment fault found:
    • Report to Coordinator
    • Coordinator escalates to Emergency Maintenance
    • CLEAR BOUNDARY: Periodic workers DON'T repair, only OBSERVE
  6. Take photos: Pool after cleaning, equipment status
  7. Customer signs visit form
  8. Send to Coordinator via WhatsApp: Photos + signature photo

Post-Visit Verification (Not Pre-Approval!)

  • Coordinator receives WhatsApp photos
  • Coordinator reviews: Photos quality OK? Pool looks clean? Customer signature present? Any issues?
  • If OK: Visit confirmed, Coordinator marks complete in Excel tracking
  • If quality issue: Coordinator calls Supervisor for on-demand site visit

🔄 Renewal Process

Renewal Workflow
!

Duplicate Effort Currently

Both Coordinator AND Accountant track expiry dates manually. Risk: If both miss, renewal lost. Estimated 375,000 SAR/year lost revenue from missed renewals.

Proactive Renewal Workflow

Accountant Actions

  1. 30-45 days before expiry: Create renewal invoice (مطالبة)
  2. Determine price adjustment (typically 3-5% annual increase for inflation, chemical costs)
  3. Send invoice directly to customer
  4. Notify Coordinator: "Renewal invoice sent"

Coordinator Actions

  1. Coordinator calls customer
  2. Conversation:
    • ✓ Confirm invoice received
    • ✓ Remind expiry date
    • ✓ Explain price changes
    • ✓ Encourage renewal
    • ✓ Address concerns

✅ Customer Renews

  1. Customer pays renewal amount
  2. Payment → Customer Service → Accountant
  3. Accountant confirms payment
  4. New contract period starts seamlessly
  5. NO SERVICE INTERRUPTION
  6. Team continues same schedule

❌ Customer Declines

  1. Coordinator makes 2-3 follow-up attempts over 2 weeks
  2. Customer confirms not renewing
  3. Track reason: Too expensive, moving, switched to competitor
  4. Last scheduled visit on expiry date
  5. Coordinator updates Excel: Status = "Stopped"
  6. Team removes customer from schedule
  7. Team now has CAPACITY for new customer

System Requirements

  • ✅ Automated expiry alerts (45/30/15/7 days before)
  • ✅ Renewal invoice auto-generation
  • ✅ Coordinator task assignment: "Call customer about renewal"
  • ✅ Outcome tracking: Renewed / Declined / Pending
  • ✅ Reason capture if declined
  • ✅ Revenue forecasting based on renewal pipeline

📱 Installation → Periodic Maintenance Handover

Handover Workflow
i

Critical Business Integration Point

80% of periodic maintenance customers come from installation handovers. The system does NOT currently support this workflow.

Current Handover Process

  1. Installation project completed
  2. Supervisor conducts pre-delivery inspection
  3. Verify: Equipment operational, pool filled/clean, no leaks, customer training completed
  4. Customer signs project acceptance form
  5. Supervisor prepares handover documentation:
    • Pool photos (multiple angles)
    • Delivery document photo
    • Customer contact info
    • Location (Google Maps pin)
  6. 📱 WhatsApp Group "الإشراف والتسليم" - Installation supervisor sends to group
  7. Group members: 3-4 Installation Supervisors + Wijdan (Periodic Maint.)
  8. ⚡ Wijdan receives handover notification
  9. Wijdan extracts information: Customer name/phone, pool specs, equipment, location
  10. ⚡ COVERAGE VALIDATION - CRITICAL GATE
    • ✅ ACCEPT: Within Riyadh covered areas → Prepare quotation
    • ❌ REJECT: Villages, remote provinces → Notify customer cannot provide service
  11. If accepted: Wijdan prepares quotation (service description, pricing, visit frequency, contract duration)
  12. Send to Customer Service for delivery
  13. Customer Service sends quotation via WhatsApp
  14. If customer pays → Standard periodic maintenance workflow begins

System Requirements to Replace WhatsApp

  • ✅ Installation supervisor clicks "Complete Project" in Odoo
  • ✅ System prompts: Upload pool photos (3-5), upload signed delivery doc, confirm location, add notes
  • ✅ Click "Submit Handover to Periodic Maintenance"
  • ✅ System automatically:
    • Notifies Wijdan (task created)
    • Transfers project data: Customer info, pool specs, equipment list, location coordinates
    • Creates handover record
  • ✅ Wijdan opens handover dashboard
  • ✅ System shows: All customer data auto-populated, coverage validation (🟢 In coverage / 🔴 Out of coverage - auto-detected)
  • ✅ One-click actions: Accept & create quotation (auto-filled from template) OR Reject (with reason)

Benefits

  • ✅ Zero manual data entry
  • ✅ Complete audit trail
  • ✅ Photos stored in system
  • ✅ Auto coverage validation
  • ✅ Faster quotation generation
  • ✅ No WhatsApp dependency

What's New in Version 2.1

Updated January 3, 2026

All information verified from meeting transcripts with cross-referencing to ensure accuracy.

  • Installation Coordinator role - 3 coordinators with regional assignments
  • Two-system problem - Oracle + Cloud/Blue system issues documented
  • Search dysfunction - Auto-deletion, exact matching, no location search
  • Material returns problem - 5 verified root causes (5-6 returns per project)
  • Supervisor pre-inspection - Requirements before material dispensing
  • Updated workflows - Installation department coordination corrected

📄 Document Contents

3

Business Lines

Installations, Periodic Maintenance, Emergency Maintenance

20+

Use Cases

Real scenarios from actual operations

15+

Critical Roles

Including coordinators, supervisors, engineers

10+

Pain Points

System issues and operational challenges

Main Topics

📋 Department Structure

Complete org chart with roles, responsibilities, and team divisions

🔄 Complete Workflows

End-to-end processes for installations, periodic & emergency maintenance

💻 Current Systems

Oracle + Cloud system problems, Excel workarounds, WhatsApp communication

⚠️ Pain Points

Two-system problem, search dysfunction, material returns, manual tracking

📝 Business Rules

Contract terms, warranty periods, payment schedules, service packages

📊 Use Cases

20+ real scenarios from new customer to renewal process

Access Full Documentation

The complete 95-page documentation is available in Google Docs for easy access, commenting, and collaboration.

💡 Tip: Use Google Docs for commenting, suggesting edits, and collaborative review. Download the markdown version for offline access.