Integrate QuoteX with KLIENT PSA (Formerly KROW)
This data mapping specification establishes the integration blueprint between the source CodeyLabs' QuoteX (PSC) object and the target KLIENT PSA (KROW) object . The primary objective of this mapping is to translate rate card definitions into structured target system pricing engline identities align perfectly across systems.
| ⚠ | IMPORTANT This document is intended strictly as a guidance framework and does not represent a frozen or finalized technical mapping. Implementers, developers, and data architects should treat these definitions as a baseline recommendation and are expected to make final technical, structural, and architectural decisions based on their own independent evaluations, system constraints, and discovery findings of CodeyLabs' QuoteX and KLIENT PSA. |
The table below outlines how data can integrates between the source objects to the target objects.
Use the specific target fields, validation notes, and proposed transformation logic detailed below as a starting point for your technical assessment prior to configuring the target environment.
| PSC Rate Card field | Source type | Krow Rate Card or Role or Rate Card Role field | Target type | Action | Mapping Notes |
| Identity & naming | |||||
| Code | Text(20) | - | - | - | - |
| Resource Role | Picklist | Name | Text(80) | Transform | Combine with Resource Level, Practice and Region for uniqueness e.g. "Senior Developer" |
| Description | Long Text(32000) | - | - | - | Create custom field on Krow Role |
| External Id | Text(18) | Krow__External_Id__c | Text(18) | Direct | Use as upsert key in migration |
| Migration Id | Text(18) | - | - | - | Fallback if External Id is blank |
| PSC Rate Card Number/Id | Auto Number | - | - | - | Auto number, not portable |
| Rates & pricing | |||||
| Suggested Bill Rate | Currency(16,2) | Krow__Bill_Rate__c | Currency(16,2) | Direct | Global fallback bill rate |
| Average Cost Rate | Currency(16,2) | Krow__Cost_Rate__c | Currency(16,2) | Direct | Global fallback cost rate |
| Role Level Rate | Formula (Text) | - | - | - | Parse formula output; use only if Suggested Bill Rate is null |
| Currency | Picklist | CurrencyIsoCode | Picklist | Direct | Requires multi-currency org |
| Classification | |||||
| Resource Level | Picklist | - | - | - | Create picklist on Krow Role; map PSC levels |
| Practice | Lookup(PSC Practice) | - | - | - | https://help.codeylabs.com/s/?drte_ext__articleid=a3IT10000004kInMAI https://krowsoftware.my.site.com/customer/s/article/Practices-Object |
| Primary Resource Skill | Lookup(PSC Skill) | - | - | - | https://help.codeylabs.com/s/?drte_ext__articleid=a3IT10000004kKPMAY https://krowsoftware.my.site.com/customer/s/article/Skill-Certifications-Object |
| Region | Lookup(PSC Region) | - | - | - | https://help.codeylabs.com/s/?drte_ext__articleid=a3IT10000004kHBMAY https://krowsoftware.my.site.com/customer/s/article/Region |
| - | - | ||||
| Status & validity | |||||
| Start Date | Date | Krow__Active__c | - | No mapping | Belongs on Krow Rate Card, not Role |
| End Date | Date | Krow__Active__c | - | No mapping | Belongs on Krow Rate Card, not Role |
| Ownership & system | |||||
| Created By | Lookup(User) | - | - | - | System field |
| Last Modified By | Lookup(User) | - | - | - | System field |
KLIENT PSA - RATE CARD/ROLE OBJECT ERD
Reference:
https://krowsoftware.my.site.com/customer/s/article/Project-Rate-Card-Role-Object
https://krowsoftware.my.site.com/customer/s/article/Project-Roles-Object
https://krowsoftware.my.site.com/customer/s/article/Project-Rate-Card-Object
| POV: QuoteX Resource Request Integration with Klient PSA Project Resources |
Reference:
https://krowsoftware.my.site.com/customer/s/article/Project-Resources-Object
https://krowsoftware.my.site.com/customer/s/article/Project-Assignment-Object
Klient focuses heavily on scheduling and allocation grids, managing placeholders within assignments or dedicated request templates.
Primary Demand Object: QuoteX's Add-on: PSC_Resource_Request__c (Resource Request)
Reference:
https://help.codeylabs.com/s/?drte_ext__articleid=a3IT10000004m65MAA
How it holds demand: Unfulfilled resource needs are instantiated via Resource Requests for Workforce Management Teams to manage. This object defines the placeholder demand (e.g., "Developer Needed" for X hours from StartDate till EndDate with $A Bill Rate and $B Cost Rate).
Demand Mapping: Klient handles inline task-level demand using unassigned Krow__Project_Assignment__c placeholder records on the Gantt chart or Request Planner view before a named Krow__Project_Resources__c is staffed. Learn more
| POV: QuoteX Direct Integration with KLIENT's Resource Request |
https://www.youtube.com/watch?v=v2ln4k8FHN8
Reference:
https://krowsoftware.my.site.com/customer/s/article/resource-request-quick-start
| Target Krow Resource Request Field (API Name) | Krow Data Type | Source PSC Timeline Resource QuoteX Field / Logic | Integration / Mapping Logic & Notes |
Id | ID | N/A (System Generated) | Internal Salesforce ID generated upon upserting records into Klient. |
Name | Text (Auto-Number) | N/A (System Generated) | Automatically determined by Klient's object settings. |
Krow__Project__c | Lookup / Master-Detail | Krow Project mapping logic | You will map this to the target Klient Project record ID that matches your opportunity/estimate. |
Krow__Project_Role__c | Lookup | Role__c (Text) | High Priority Alignment: Krow expects a Lookup to a Project Role record. You must run a translation step matching your text strings ( Role__c or structured Resource_Role__c ) to the ID of the corresponding record in Klient's role master table. |
Krow__Project_Resource__c | Lookup | N/A (Left blank for open requests) | Leave this empty if generating an unstaffed request. If the QuoteX resource line is already tied to a specific named user, populate this with their corresponding Klient Project Resource ID. |
Krow__Status__c | Picklist | Hardcoded Initial Value | Typically mapped to a default status such as "Draft" , "Requested" , or "Open" depending on your downstream resource fulfillment workflow. |
Krow__Start_Date__c | Date | Derived from allocations | Map the earliest Period's Date__c from the child PSC_Timeline_Resource_Allocation__c records associated with this resource line. |
Krow__End_Date__c | Date | Derived from allocations | Map the latest Period's End_Date__c from the child PSC_Timeline_Resource_Allocation__c records associated with this resource line. |
Krow__Requested_Hours__c | Number (16, 2) | Total_Hours__c | Direct map. The summary field total hours value from QuoteX maps directly to Krow's requested tracking capacity. |
Krow__Notes__c | Long Text Area | Custom concatenation / Metadata info | Ideal target for appending auxiliary details that don't have direct fields in the screenshot, such as mapping the Speciality__c text/lookup label or the full structured string from Resource_Role__c . + Notes__c from Timeline Resource. |