The person master for anyone who does work in the system - technicians, service advisors, sales executives, drivers, back-office staff - and the universal keying anchor: payroll, expenses, leave, attendance, claims, loans and advances, service assignment and field sales all key on ResourceId rather than on a user or employee id. EmployeeId is a plain code string, not a lookup to the Employee entity - Employee is a separate one-to-one HR/payroll satellite that points at Resource, and payroll resolves the salary structure from the latest active ResourceCompensation, not from Resource.SalaryStructureId. On insert the platform stamps the caller's Resource into any empty Resource foreign key on the new record and derives the document's partner account and branch from that Resource, which makes this entity the source of a document's selling organisation.
Fields
| Field | Label | Type | Required | What it does |
|---|---|---|---|---|
AadhaarNumber | Aadhaar Number | Text | ||
BankAccountNumber | Bank Account Number | Text | ||
BusinessHoursId | Business Hours | Lookup → BusinessHours | The person's own working-hours definition, taking precedence over the default branch's hours where it is consulted - for example when attendance auto-checkout needs the correct local timezone for this person. Note it points at the BusinessHours master directly; the separate ResourceBusinessHours entity plays no part. | |
CreatedById | Created By | Lookup → UserAccount | Yes | |
CreatedDateTime | Created Date | DateAndTime | Yes | |
DefaultBranchId | Default Branch | Lookup → Branch | The branch half of the default selling pair. It is meaningless on its own - validation refuses a resource that has a default branch without a default partner account, and document defaulting only uses the pair when both legs are present. | |
DefaultPartnerAccountId | Default Partner Account | Lookup → Account | The selling organisation this person normally writes documents for. It is only honoured together with DefaultBranchId: the platform uses the default pair to stamp a new document's partner account and branch only when both are set, otherwise it falls back to the person's dated PartnerResource postings. Saving one leg without the other is rejected by validation. | |
Department | Department | PickList | Values: IT, HR, Sales, Finance. | |
Designation | Designation | PickList | Values: Software Engineer, HR Executive, Sales Executive, Sales Executive Financial Analyst. | |
EffectiveFromDate | Effective From Date | Date | Do not rely on it to exclude a person from selection. | |
EffectiveTillDate | Effective Till Date | Date | The closing bound of the intended validity window, and like its counterpart it is never evaluated by platform code. A past date here does not deactivate the person; only IsActive does that. | |
EmployeeId | Code | Text, unique | Yes | A plain code string (labelled Code), not a lookup to the Employee entity - the name is a long-standing legacy that a planned rename to EmployeeCode has not yet fixed. To reach payroll and HR configuration, go through the Employee record whose ResourceId points back here, never through this string. |
EmploymentType | Employment Type | PickList | Values: Permanent, Contractual. | |
ExternalId | External | Text, unique | ||
Id | Id | Guid | Yes | |
IFSCCode | IFSC Code | Text | ||
IncentiveResourceGroupId | IncentiveResourceGroup | Lookup → ResourceGroup | Places the person in a resource group for incentive purposes. | |
IsActive | Active | Boolean | More than a display flag: caller resolution only matches an active Resource, so clearing it detaches the person from their sign-in account for self-assignment and personal scoping purposes, and authorisation checks against partner postings also require it. Changing it invalidates the cached resource lookups. | |
IsEligibleForPT | Is Eligible for PT | Boolean | Marks the person as liable for professional tax so payroll configuration can distinguish them. | |
IsRelatedParty | Related Party | Boolean | ||
JoiningDate | Joining Date | Date | ||
Label | Resource Label | Text | A secondary display string separate from the record's Name, present on most entities for layout purposes. It is not the person's name, is not used in lookups or search matching, and is frequently left empty. | |
LabourCostRatePerHour | Labour Cost Rate Per Hour | Decimal | ||
ManagerResourceId | Manager | Lookup → Resource | The reporting manager, expressed as another Resource rather than a user, and the link used to walk a person's management chain. It is distinct from ParentResourceId and from SkipManagerResourceId - all three are self-references with different meanings. | |
ModifiedById | Modified By | Lookup → UserAccount | Yes | |
Name | Name | Text | Yes | |
OwnerId | Owner | Lookup → UserAccount | Yes | |
PANNumber | PAN Number | Text | ||
PanVerificationSource | PAN Verification Source | Text | Where the PAN verification result came from - the bulk verification file import stamps its own source value, as opposed to a manual verification recorded by a user. It is provenance for the status, not a second status. | |
PanVerificationStatus | PAN Verification | PickList | The outcome of checking this person's PAN with the tax department - Verified, Invalid or NameMismatch, with empty meaning never verified. TDS return computation treats Verified as clean and both Invalid and NameMismatch as rejected, which affects the deduction rate applied. Values: Verified, Invalid, Name Mismatch. | |
PanVerifiedOn | PAN Verified On | DateAndTime | ||
ParentResourceId | Parent Resource | Lookup → Resource | A second self-reference used for structural nesting of resources, kept separate from the reporting line held in ManagerResourceId. | |
PFAccount | PF Account | Text | ||
Phone | Phone | Text | ||
RecordTypeId | Record Type | Guid, hidden | ||
RelatedPartyEffectiveFrom | Related Party From | Date | ||
RelatedPartyEffectiveTo | Related Party To | Date | ||
RelatedPartyRelationship | Relationship | Text | ||
RelatedPartyType | Related Party Type | PickList | Values: Director, Key Management Personnel, Relative of Director / KMP, Holding Company, Subsidiary Company, Fellow Subsidiary (Sister Concern), Associate / Joint Venture, Entity Controlled by Director / KMP, Promoter, Other. | |
ResourceType | ResourceType | LongMultiLineText | A second, free-text classification alongside Type, with no picklist behind it. It is used mainly in tenant-authored filter expressions to select a population of resources (for example a field-force role code), so its values are tenant conventions rather than platform constants. | |
SalaryStructureId | Salary Structure | Lookup → SalaryStructure | A direct pointer to a salary structure that the payroll calculation does not use: pay is computed from the latest active ResourceCompensation row for the person, which carries its own SalaryStructureId. Treat this field as informational and read the compensation record when reasoning about what someone is actually paid. | |
SkipManagerResourceId | Skip Manager | Lookup → Resource | The manager one level above the direct manager, intended for skip-level escalation and approvals. | |
Type | Resource Type | PickList | Yes | The classification of the person (its picklist ships Service Advisor, Manager and Sales Persons) and the field carried in the platform's cached resource data. Do not confuse it with the separate ResourceType field on the same entity - they are different columns with different vocabularies. Values: Service Advisor, Manager, Salesperson, Labour. |
UAN | UAN | Text | ||
UIProps | UI Props | Text | ||
UpdatedDateTime | Modified Date | DateAndTime | Yes | |
UserId | User | Lookup → UserAccount | The lookup to the sign-in account (UserAccount) that this person uses, and the key the platform uses to answer 'who is the caller': the caller's Resource is the single active Resource whose UserId equals the signed-in user id, cached per user. A resource that never signs in (a subcontractor, a machine operator) legitimately leaves this empty. |
Actions
| Action | Label | Type | What it does |
|---|---|---|---|
BulkDelete | Delete | Delete | Delete the selected records. |
Clone | Clone | ServerAction (Clone) | Runs the platform's generic record clone rather than anything resource-specific: it copies every persisted property of the resource (including metadata-backed custom fields) onto a new record, skipping identity, audit, soft-delete and background-job columns, and by default deep-copies the children the delete cascade owns. The clone is saved through the normal lifecycle, so defaults, document numbering, validation and audit all apply - which means the new record does not keep the source's name if document numbering is active, and resource validations such as the default partner/branch pairing rule still fire. |
Delete | Delete | Delete | Delete |
DeleteInList | Delete | Delete | Delete in a list page |
Edit | Edit | Edit | Edit |
EditInLine | Edit | EditInline | EditInLine |
EditInList | Edit | EditInline | Edit in List Header |
EditListRow | Edit | Edit | Edit |
EditPopup | Edit | Edit | Edit |
LatestForm16 | Latest Form 16 | ServerAction | It does carry a layout, so the only real effect is that the associated form opens; any tax certificate for the person must be reached through the TDS certificate records instead. |
New | New | New | New |
Validations
| Validation | Applies to | Error message | Notes |
|---|---|---|---|
| Effective Till Date Rule Validation | EffectiveTillDate, Error | Effective Till Date cannot be before Effective From Date | Prevents Till Date from Older. |
Lookup filters
| Filter | Lookup field | Notes |
|---|---|---|
| BranchFilter | DefaultBranchId | |
| PartnerAccountFilter | DefaultPartnerAccountId |
Related entities
- Resource — looks up via
SkipManagerResourceId - SalaryStructure — looks up via
SalaryStructureId - UserAccount — looks up via
CreatedById - Resource — looks up via
ManagerResourceId - Resource — looks up via
ParentResourceId - UserAccount — looks up via
UserId - UserAccount — looks up via
ModifiedById - Branch — looks up via
DefaultBranchId - Account — looks up via
DefaultPartnerAccountId - ResourceGroup — looks up via
IncentiveResourceGroupId - UserAccount — looks up via
OwnerId - BusinessHours — looks up via
BusinessHoursId - Resource — referenced by via
SkipManagerResourceId - Opportunity — referenced by via
ServiceAdvisorId - InventoryFulfilmentAllocationLine — referenced by via
AllocatedByResourceId - PartnerAccountMapping — referenced by via
ResourceId - CompanyCard — referenced by via
AssignedResourceId - VisitPlan — referenced by via
ExecutedByResourceId - InventoryFulfilmentPickingLine — referenced by via
PickedByResourceId - DeliveryOrder — referenced by via
DeliveryDoneByResourceId - ExpenseReimbursementBatchLine — referenced by via
ResourceId - PayrollPaymentBatchLine — referenced by via
ResourceId - Invoice — referenced by via
SalesExecutiveResourceId - ResourceAvailability — referenced by via
ResourceId - Resource — referenced by via
ManagerResourceId - PartnerResource — referenced by via
ManagerResourceId - ServiceOrderLine — referenced by via
TechnicianId - ServiceOrderTimeSheetLine — referenced by via
ResourceId - Resource — referenced by via
ParentResourceId - ExpenseAdvance — referenced by via
ResourceId - AutoOrder — referenced by via
ResourceId - Transfer — referenced by via
ReceivedResourceId - ResourceLeave — referenced by via
ResourceId - PMTask — referenced by via
TechnicianId - Quote — referenced by via
ServiceAdvisorId - ServiceOrder — referenced by via
ResourceId - InventoryFulfilment — referenced by via
AllocatedResourceId - Requisition — referenced by via
ResourceId - LoanAdvanceRecovery — referenced by via
ResourceId - Case — referenced by via
ResourceId - PayrollRunDetail — referenced by via
ResourceId - Payslip — referenced by via
ResourceId - ClaimLine — referenced by via
TechnicianId - CycleCountLine — referenced by via
CountedByResourceId - Transfer — referenced by via
TransferredByResourceId - ExecutivePosition — referenced by via
ExecutiveResourceId - VisitRoute — referenced by via
ResourceId - FullAndFinalSettlement — referenced by via
ResourceId - VisitPlan — referenced by via
AssignedToResourceId - LeaveEntitlement — referenced by via
ResourceId - Adjustment — referenced by via
ResourceId - Employee — referenced by via
ResourceId - Shipment — referenced by via
ResourceId - PayrollAdjustment — referenced by via
ResourceId - CycleCount — referenced by via
AssignedToResourceId - GoodsReceipt — referenced by via
ResourceId - CheckInInspection — referenced by via
ServiceAdvisorId - MonthlyTdsProjection — referenced by via
ResourceId - PayrollRunComponentLine — referenced by via
ResourceId - ResourceGroupMember — referenced by via
ResourceId - IncentiveResource — referenced by via
ResourceId - PurchaseOrder — referenced by via
ExecutiveResourceId - Invoice — referenced by via
ExecutiveResourceId - PartnerResource — referenced by via
ResourceId - ResourceAvailabilityData — referenced by via
ResourceId - ChecklistTemplate — referenced by via
ResourceId - Lead — referenced by via
ResourceId - Invoice — referenced by via
ServiceResourceId - PerformanceKPI — referenced by via
ResourceId - VisitRouteGroup — referenced by via
ResourceId - ServiceOrder — referenced by via
ServiceAdvisorId - Opportunity — referenced by via
PickUpAssignedToId - LeaveRequest — referenced by via
ResourceId - LoanAdvance — referenced by via
ResourceId - KPIData — referenced by via
ResourceId - ServiceOrderLine — referenced by via
ResourceId - KYCDocument — referenced by via
ResourceId - CycleCount — referenced by via
ResourceId - Transfer — referenced by via
ExecutiveResourceId - ServiceOrderTimeSheet — referenced by via
ResourceId - ResourceBusinessHours — referenced by via
ResourceId - Bill — referenced by via
ResourceId - ExpenseClaim — referenced by via
ResourceId - Order — referenced by via
ExecutiveId - TaxDeclaration — referenced by via
ResourceId - ProductDemo — referenced by via
ResourceId - RouteSequence — referenced by via
ResourceId - ResourceCompensation — referenced by via
ResourceId - TdsCertificate — referenced by via
ResourceId - CreditNote — referenced by via
ResourceId
