---
title: "Customer Management System"
slug: "v-25-minor2-customer-management-system"
updated: 2025-09-19T11:55:14Z
published: 2025-09-19T11:55:14Z
canonical: "zenoplesupport.aqore.com/v-25-minor2-customer-management-system"
---

> ## Documentation Index
> Fetch the complete documentation index at: https://zenoplesupport.aqore.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Customer Management System

# Customer Management System

The following features have been added to customer management system (CMS).

## Transfer and Move Department Overview

### 1. Overview

This document provides a simplified explanation of the new *Transfer & Move Department* feature, designed to streamline organizational changes. It highlights the main functionalities and processes in a user-friendly manner.

### 2. Purpose of the Feature

The *Transfer & Move Department* feature is designed to facilitate organizational restructuring. It allows departments to be:

- **Transferred** between organizations, creating a new department for the transferred organization.
- **Moved** within the same organization, ensuring hierarchical relationships are preserved.

### 3. Key Functionalities

#### Department Transfer

- Transfers departments from one organization to another.
- Creates a new department for the transfer organization, while the old department is assigned the status “OwnershipTransfer”.
- Ensures all associated data (e.g., Job, Assignments, invoices, Contact, etc.) is copied or moved.

#### Department Move

- Moves a department within its current organization.
- Updates parent-child relationships to maintain hierarchy.
- Automatically handles exceptions, such as moving a department into one of its child departments.

### 4. How It Works

#### 4.1 Department Transfer Process

When transferring a department:

1. A new department will be created for the organization.

1. Data related to the department (e.g., Job, Assignments, invoices, Contact, etc.) is copied into the new organization.

1. Relationships between old and new entities are maintained for seamless integration.

#### 4.2 Department Move Process

When moving a department:

1. The department's parent ID is updated to reflect its new location.

1. Any child departments are reassigned to preserve hierarchy.

### 5. Data Management

The feature ensures that data associated with departments is handled carefully:

- **Entities like tasks, schedules, and contacts** are either moved or copied depending on their dependencies.
- Special rules apply for certain items (e.g., invoices and payments), ensuring accuracy during transfers.

### 6. Entity Transfer Detail

When transferring data between organizations, entities are categorized into two groups: **Independent Entities** and **Dependent Entities**. The transfer process ensures that relevant relationships and dependencies are maintained while preventing duplicate data entry.

#### Independent Entities

Independent entities are those that do not rely on other entities for their transfer. These entities are directly copied into the new organization with their existing relationships intact, provided their *applies Active* status is true and they are selected by the user.

**List of Independent Entities**

- **Comment**
- **Document**
- **CustomerCandidate**
- **EmployeeExclude**
- **ServiceProfile**
- **SalesProfile**
- **RevenueOpportunity**
- **PurchaseOrder**
- **Discount**
- **Charge**
- **CustomerAdjustment**
- **CustomerRequirement**
- **ContactRole**
- **UserType**
- **ContactInformation**
- **Address**
- **Custom Fields**
- **DateType**

***Transfer Process for Independent Entities***

1. These entities are directly inserted into the FromEntityId and Entity columns of the DepartmentTransferEntityDetail table.

1. Their respective IDs and relationships are preserved during the transfer.

#### Dependent Entities

Dependent entities require associated data or relationships to be transferred together to ensure consistency. These entities follow specific rules based on their dependencies.

#### List of Dependent Entities and Their Transfer Logic

1. **Task**

- Tasks with a status other than "Archived" are transferred.
- They are copied into the new department along with their associated data.

1. **Web clock**

- The organization's Web clock is transferred along with associated data such as:
- Organization Address
- Address
- Contact
- Contact Role
- A temporary table (#TempWebclock) is used to manage this process.
- Old Organization’s web clock names are updated (e.g., "-moved" appended) to avoid duplication.

1. **Job (Temporary Job)**

- Active jobs (*appliesActive = true*) are transferred.
- Associated data such as WCCode, Shift, Job Position, Address, Organization Address, Markup, and Contacts are also included.
- A temporary table (#TempJobandAssignmentDependentData) ensures all job-related entities are transferred together.

1. **Assignments**

- Active assignments with an end date of today or later are transferred.
- If an assignment is active but its associated job is inactive, the job is also copied.
- If only assignment are selected, their associated jobs and related entities (e.g., WCCode) are also transferred.

1. **Scheduled Job**

- Scheduled jobs with active status will be copied.
- Along with Job schedule whose schedule date of today or later are included.
- Associated job schedules and related entities are also copied if selected.

1. **Assignment Schedule**

- Active assignment schedules are transferred along with:
- Scheduled jobs
- Job Schedules
- Related job entities (e.g., WcCode)

1. **Contact**

- Contacts are "cut" from the current organization and "pasted" into the new organization.
- Only contacts associated with the transferring organization are included.

1. **Contact Role**

- Roles linked to contacts in the transferring organization are copied and in the old organization its status are set as “**ownershipTransfered**”

1. **Work Injury**

- Active work injury records along with its associated assignments and jobs are transferred.
- If work injury assignment is linked to a temporary job, all related assignments and job-related data are also included.
- If  work injury assignment is linked to a scheduled job, all associated schedules and job-related entities are transferred.

1. **Job Candidate**

- Active job candidates (*appliesActive = true*) are copied.
- Associated jobs (temporary, scheduled, or direct hire) and related entities (e.g.,WcCode, Job position, Organization Address) are also copied.
- If an assignment Id exists in a job candidate record, that assignment is also transferred.

1. **Entities Associated with Jobs (WCCode, Markup, Shift, Skills, Address, Contact)**

- These entities are included if individually selected or indirectly required by other transferring entities like jobs or work injuries.
- A temporary table (#TempJobandAssignmentDependentData) ensures these dependencies are managed correctly.

1. **Invoices**  
 Invoices follow specific rules based on payment status:

- *Invoice with full balance*: Invoices where balance equals invoice amount are cut-and-pasted into the new organization.
- *Invoice with Partial Payment*: Invoices with outstanding balances but not fully paid amounts are cut and pasted along with associated organizational addresses.
- *Invoice with zero Payment*: Fully paid invoices (balance = $0) undergo cut-and-paste operations.

1. **Organization Payments**  
 Similar logic applies for payments:

- *Unapplied credit with full Balance*: Payments where balance equals payment amount undergoes cut-and-paste operations.
- *Unapplied credit with partial Balance*: Payments with outstanding balances but not fully paid amounts are inserted along with organizational addresses.
- *Payment with zero Balance*: Fully paid payments undergo cut-and-paste operations.

### 7. Handling Duplicate Entries

To prevent duplicate records:

- Addresses already inserted from one entity (e.g., Webclock) will not be inserted again from another entity (e.g., Job).
- Temporary tables are used to ensure dependencies are handled correctly.

### 8. Workflow for Transfers

The transfer process involves several steps:

1. A new department is created for the organization.

1. Entities selected by the user are copied or moved based on dependencies.

1. Relationships between old and new entities are maintained using reference IDs and notes.

1. All the child departments are also transferred along with the parent, maintaining the same list of selected entities while transferring the parent department.

### 9. Workflow for Moves

The move process updates parent-child relationships within the same organization:

1. Parent IDs are updated to reflect new hierarchies.

1. Child departments are reassigned as needed to maintain structure.

### 10. Exceptions for Error Prevention

To ensure smooth operations, several exceptions are built into the feature:

1. **Department Name Conflict Exceptions:** Prevents duplicate department names during transfers or moves.

1. **Open Transactions & Unprocessed Invoices:** Flags unresolved financial transactions to avoid disruptions.

1. **Department Moving Inside its Own Child Exception:** Prevents a department from being moved into one of its child departments, preserving hierarchical integrity.

### 11. Benefits

1. **Simplified Organizational Changes:** Easily transfer or move departments without manual intervention.

1. **Data Integrity:** Ensures all associated data is accurately transferred or updated.

1. **Error Prevention:** Built-in exceptions prevent common mistakes during transfers or moves.

This overview simplifies the details behind the *Transfer & Move Department* feature while highlighting its practical benefits for users and organizations.

## Customer KPI Optimization

This feature improves the performance and reliability of Key Performance Indicator (KPI) calculations in Zenople by Aqore by revamping a stored procedure. The calculation logic has been removed from the customer KPI calculation and now pulls all the information from the job KPI to ensure accurate figures for both KPIs.

### Functionality

- **Improved KPI Accuracy:** KPIs are calculated using data pulled from the job KPI, which ensures more accuracy.
