Easyteam's embedded components rely on your platform to provide real-time, contextual data at render time about the currently rendered company and employees.This means your frontend is responsible for passing fresh, relevant employee, location, and organization metadata whenever Easyteam is initialized and keeping it updated.
Why This Matters#
Easyteam doesn’t store or cache employee PII: names, emails, pictures, or roles are used only for display purposes and never leave the browser. This ensures that:Data remains fully under your control
No PII is stored in Easyteam’s backend
Easyteam interfaces always reflect your latest internal data
Your platform doesn't have to populate data in advance about the organizations and employees using your system.
Best Practice: Lazy Load Fresh Data#
To maintain accuracy and privacy:Always load employee/location/org data fresh from your backend at render time
Don’t preload or persist stale data between sessions
Trigger Easyteam only after this data is available (e.g., after login, or user context resolution)
This ensures correct role-based permissions, organization context, and schedule rendering.
Supported Interfaces#
Below are the supported object shapes for each data type, and how they should be passed into the launcher or provider.
Employee[]#
Each employee should be passed with information about a specific employee for rendering and permission purposes.| Property | Type | Required | Description |
|---|
id | string | Yes | The employee ID from your system. Used as the primary reference. |
name | string | Yes | Display name for the employee. Not stored by Easyteam. |
picture | string | No | Optional URL to the employee's avatar. |
timeTrackingEnabled | boolean | No | If set to false, time tracking features will be hidden for this employee. |
role | string or Role | No | Role name (e.g., manager) or a reference to a Role object. See below. |
payrollId | string | No | Optional identifier from your external payroll system. |
isVisible | boolean | No | Controls UI visibility without deleting the employee. |
wage | number | No | Optional wage amount used for reporting purposes. |
wageType | 'hourly' | 'weekly' | 'monthly' | No | Specifies how the wage should be interpreted. |
deletedAt | string 'YYYY-MM-DD' | No | If the employee is soft-deleted. Typically used for archival visibility. |
Make sure each id and locationId maps to identifiers from your platform.
Location[]#
Locations define the physical or logical places employees are assigned to.| Property | Type | Required | Description |
|---|
id | string | Yes | Unique identifier for the location from your system. |
latitude | number | Yes | Latitude coordinate for the location (used for geofencing/time clock). |
longitude | number | Yes | Longitude coordinate for the location. |
name | string | No | Human-readable name of the location. |
timezone | string | No | Timezone associated with this location |
employees | [employeeId: string] : {} or null | No | Map of employee IDs assigned to this location. Make sure the employees match the employees object. Allowed to set metadata about each employee |
Set deleted_at : 'YYYY-MM-DD' on a location's employee assigment to mark them as not longer working there.
#
Organization#
The organization object describes the business entity using currently being displayed.| Property | Type | Required | Description |
|---|
id | string | Yes | Your internal organization ID. |
name | string | Yes | Company display name. |
Example#
✅ This data is passed at runtime, used locally in the browser, and never persisted by Easyteam.
Security Reminder#
Easyteam uses signed JWTs to validate session context. The jwt you generate contains permission metadata, but no PII. See Authentication Docs for how to generate secure tokens.For compliance, privacy, and event handling details, see:
Next Steps#
1.
Implement fresh data retrieval before initializing Easyteam
2.
Pass employees, locations, and organization objects as shown above
3.
Read about available events and UI triggers Modified at 2025-06-26 11:56:41