Version: 1.0Documentation Index
Fetch the complete documentation index at: https://docs.encoreos.io/llms.txt
Use this file to discover all available pages before exploring further.
Last Updated: 2026-01-08
Audience: Developers, System Administrators, End Users
Purpose: Step-by-step guides for common data management workflows using PF-15 (Picklists), PF-16 (Custom Fields), PF-17 (Field Configuration), PF-23 (Object Browser), PF-24 (Custom Objects), PF-25 (Raw Data Editor), and PF-26 (Object Permissions).
Workflow 1: Adding Custom Data to Core Entities
Scenario: Add “Badge Number” field to HR Employees with validation Duration: 10-15 minutesPrerequisites: Org admin access
Step 1: Create Picklist (Optional)
If the field needs dropdown options, create a picklist first:- Navigate to Settings → Picklists
- Click + New Picklist
- Fill in:
- Name:
employee_badge_prefix(snake_case) - Label: “Employee Badge Prefix”
- Category: HR
- Description: “Prefix codes for employee badges”
- Name:
- Click Create
- Add items:
ADM- AdministrativeCLN- ClinicalOPS- OperationsSUP- Support
- Click Save
Step 2: Define Custom Field
- Navigate to Settings → Custom Fields
- Click + New Field
- Fill in:
- Entity Type:
hr_employees - Field Key:
badge_number(snake_case, unique per entity) - Field Label: “Badge Number”
- Field Type:
text - Required: Yes
- Validation Rules:
- Help Text: “Format: XXX-#### (e.g., ADM-1234)”
- Placeholder: “ADM-1234”
- Entity Type:
- Click Create
Step 3: Configure Field Layout (Optional)
- Navigate to Settings → Field Configuration
- Select entity: HR Employees
- Select view context: Create Form or Edit Form
- Find
badge_numberfield - Configure:
- Display Order: 15 (after employee_id)
- Field Section: “Employment Details”
- Column Span: 1
- Visible to Roles: All (or specific roles)
- Editable by Roles: HR Admin, Org Admin
- Click Save
Step 4: Use in Employee Forms
Update HR employee form to include custom fields:Step 5: View in Data Manager
- Navigate to Data Manager
- Find Employees object
- Click to view details
- Go to Fields tab
- See
badge_numberin “Custom Fields” section - Go to Raw Data tab to see/edit badge numbers
- ❌ Forgetting to set
display_order→ Field appears at bottom - ❌ Missing validation rules → Invalid data accepted
- ❌ Not grouping fields → Cluttered form
- ✅ Always test validation before deploying
Workflow 2: Creating a Custom Entity
Scenario: Create “Clinical Licenses” custom object to track employee certifications Duration: 20-30 minutesPrerequisites: Org admin access
Step 1: Create Custom Object
- Navigate to Data Manager
- Click + New Object
- Fill in wizard:
- Step 1: Basic Information
- Name: “Clinical Licenses”
- API Name:
clinical_licenses(auto-generated, can edit) - Description: “Track clinical licenses and certifications for staff”
- Category: “HR & Workforce”
- Icon: “certificate” (or custom)
- Color: “blue”
- Click Next
- Step 1: Basic Information
- Step 2: Review → Click Create
Step 2: Add Fields
- Navigate to Data Manager → Clinical Licenses
- Go to Fields tab
- Click + Add Field
-
For each field:
Field 1: Employee
- Select existing field definition: “Employee Lookup” (or create new)
- Required: Yes
- Show in List: Yes
- List Order: 1
- Click Add
- Create new field definition:
- Field Key:
license_type - Field Type:
select - Picklist: “License Types” (create if needed)
- Field Key:
- Required: Yes
- Show in List: Yes
- List Order: 2
- Click Add
- Create new field definition:
- Field Key:
license_number - Field Type:
text - Required: Yes
- Validation: Pattern
^[A-Z]{2}-\\d{6}$
- Field Key:
- Show in List: Yes
- List Order: 3
- Click Add
- Create new field definition:
- Field Key:
expiration_date - Field Type:
date - Required: Yes
- Field Key:
- Show in List: Yes
- List Order: 4
- Click Add
- Drag fields to reorder if needed
Step 3: Create Records
- Go to Records tab
- Click + New Record
- Fill in form:
- Employee: Select from dropdown
- License Type: Select from picklist
- License Number: Enter (validated)
- Expiration Date: Select date
- Click Save
Step 4: Import Existing Data (Optional)
If you have existing license data in CSV:- Go to Records tab
- Click Import
- Step 1: Upload CSV file
- Step 2: Map columns:
- CSV “Employee Name” → “Employee” (lookup)
- CSV “Type” → “License Type”
- CSV “Number” → “License Number”
- CSV “Expires” → “Expiration Date”
- Step 3: Preview validation
- Fix any errors highlighted in red
- Step 4: Confirm import
- Review success/failure count
- Click Done
Step 5: Configure Permissions
- Go to Permissions tab (admin only)
- Configure object-level permissions:
- HR Admin: View, Create, Edit, Delete
- HR Manager: View, Create, Edit
- Staff: View only
- Configure field-level permissions:
- License Number: Hide from Staff role
- Expiration Date: View only for HR Manager
- Click Save
- ❌ Forgetting to set
show_in_list→ Fields don’t appear in table - ❌ Missing required fields → Records can’t be created
- ❌ Invalid CSV format → Import fails
- ✅ Always test with sample data first
Workflow 3: Managing Organization Data Structure
Scenario: Organize all data objects by category and set up favorites Duration: 15-20 minutesPrerequisites: Org admin or power user access
Step 1: Browse All Objects
- Navigate to Data Manager
- View objects table:
- Grouped by category (default)
- Search by name or API name
- Filter by type (Core vs Custom)
- Filter by favorites
Step 2: Manage Categories
- Click Categories in Data Manager sidebar
- Create Category:
- Click + New Category
- Name: “Clinical Operations”
- Description: “Clinical and operational data”
- Icon: “stethoscope”
- Color: “green”
- Click Create
- Edit Category:
- Click category row
- Update name, description, icon, color
- Click Save
- Delete Category:
- Click category row → Delete
- Confirm (only if no objects assigned)
Step 3: Assign Objects to Categories
- In Data Manager, click an object row
- Go to Settings tab
- Select Category: “Clinical Operations”
- Click Save
Step 4: Set Favorites
- In Data Manager objects table
- Click star icon on frequently-used objects
- Filter by ★ Favorites to see only favorited objects
- Favorites persist across sessions
Step 5: Edit Object Metadata
- Click object row → Settings tab
- Update:
- Display Name: Custom name for your org
- Description: What this object is used for
- Icon: Visual identifier
- Category: Organize with related objects
- Click Save
- ❌ Creating too many categories → Hard to navigate
- ❌ Not setting favorites → Slow to find objects
- ❌ Missing descriptions → Users don’t understand purpose
- ✅ Use consistent naming conventions
Workflow 4: Bulk Data Operations
Scenario: Export employee data, edit offline, import updates Duration: 30-45 minutesPrerequisites: Org member access (view), org admin (import)
Step 1: Export Data
- Navigate to Data Manager → Employees
- Go to Raw Data tab
- Apply filters if needed (e.g., specific department)
- Click Export button
- CSV downloads with:
- All standard fields
- All custom fields (from PF-16 definitions)
- Current filter applied
Step 2: Edit Offline
- Open CSV in Excel, Google Sheets, or text editor
- Make bulk edits:
- Update multiple records
- Add new records (follow CSV format)
- Fix data errors
- Important: Don’t modify:
idcolumn (primary key)organization_id(will be set automatically)- Column headers
- Save CSV file
Important: Custom fields are exported as a single JSON column namedcustom_fields. The value is a JSON object stored as a string within the CSV cell (with quotes escaped as""). When editing custom fields in Excel or Google Sheets:The system validates JSON syntax on import and will flag rows with malformed custom_fields.
- Keep the JSON structure valid:
{"field_key":"value","another_field":"value2"}- Escape internal quotes by doubling them:
"{""badge_number"":""ADM-1234""}"- Do not add spaces inside the JSON unless they are part of the value
- To add a new custom field, include it in the JSON:
"{""badge_number"":""ADM-1234"",""employee_code"":""E001""}"
Step 3: Import Updates
- Go back to Raw Data tab
- Click Import button
- Step 1: Upload
- Select CSV file
- Click Upload
- Step 2: Map Columns
- System auto-detects column mappings
- Verify mappings are correct
- Fix any mismatches
- Step 3: Preview
- Review validation results
- Green: Valid rows
- Red: Errors (fix before importing)
- Yellow: Warnings (review but can import)
- Step 4: Confirm
- Review summary:
- Total rows: 150
- Valid: 148
- Errors: 2
- Click Import to proceed
- Review summary:
- Step 5: Results
- Success: 148 rows imported
- Errors: 2 rows failed (download error report)
- Click Done
Step 4: Verify Import
- Go to Raw Data tab
- Verify updated records show new values
- Check error report if any failures
- Re-import fixed rows if needed
- ❌ Modifying
idcolumn → Creates duplicates - ❌ Wrong date format → Validation fails
- ❌ Missing required fields → Rows rejected
- ❌ Custom field JSON format wrong → Data not saved
- ✅ Always export first to see format
- ✅ Test with 5-10 rows before bulk import
Workflow 5: Configuring Field-Level Permissions
Scenario: Hide salary field from non-HR users Duration: 10 minutesPrerequisites: Org admin access
Step 1: Navigate to Object Permissions
- Go to Data Manager → Employees
- Click Permissions tab (admin only)
- View permission matrix
Step 2: Configure Object-Level Permissions
- In Object Permissions section:
- HR Admin: ✅ View, ✅ Create, ✅ Edit, ✅ Delete
- HR Manager: ✅ View, ✅ Create, ✅ Edit, ❌ Delete
- Staff: ✅ View, ❌ Create, ❌ Edit, ❌ Delete
- Click Save Object Permissions
Step 3: Configure Field-Level Permissions
- Scroll to Field Permissions section
- Find
salaryfield (or custom field) - Set permissions per role:
- HR Admin: Edit
- HR Manager: View
- Staff: Hide
- Click Save Field Permissions
Step 4: Verify Permissions
- Log in as different role (Staff)
- Navigate to HR → Employees → [Employee]
- Verify
salaryfield is hidden - Log in as HR Manager
- Verify
salaryfield is visible but read-only
- ❌ Forgetting to save → Changes not applied
- ❌ Hiding required fields → Forms break
- ❌ Too restrictive → Users can’t do their job
- ✅ Test with different roles after configuring
Troubleshooting
Custom Fields Not Appearing
Symptoms: Field defined but not showing in form Solutions:- Check field is active (
is_active = true) - Verify field configuration (PF-17) allows visibility
- Check user role has permission to view field
- Verify
CustomFieldsSectioncomponent is in form - Check browser console for errors
Picklist Items Not Loading
Symptoms: Dropdown empty or loading forever Solutions:- Verify picklist exists and is active
- Check picklist has items (
is_active = true) - Verify
usePicklistItemshook is called correctly - Check QueryClient staleTime/gcTime configuration
- Verify organization context is set
Import Validation Errors
Symptoms: CSV import fails with validation errors Solutions:- Check CSV format matches export format
- Verify required fields are present
- Check data types match field definitions
- Validate custom field JSON format
- Review error report for specific issues
Permissions Not Working
Symptoms: Users can see/edit fields they shouldn’t Solutions:- Verify RLS policies are enabled
- Check object-level permissions are set
- Verify field-level permissions are configured
- Check user role assignment
- Clear browser cache and re-login
Best Practices
Custom Fields
- ✅ Use descriptive field keys (snake_case)
- ✅ Add help text for complex fields
- ✅ Set validation rules to prevent bad data
- ✅ Group related fields in sections
- ✅ Test validation before deploying
Custom Objects
- ✅ Use clear, descriptive names
- ✅ Follow API naming conventions (snake_case)
- ✅ Set appropriate categories
- ✅ Add helpful descriptions
- ✅ Test with sample data first
Data Management
- ✅ Organize objects into logical categories
- ✅ Set favorites for frequently-used objects
- ✅ Keep object metadata up-to-date
- ✅ Use consistent naming conventions
- ✅ Document custom objects for team
Bulk Operations
- ✅ Always export first to see format
- ✅ Test import with small dataset
- ✅ Validate data before importing
- ✅ Keep backups before bulk changes
- ✅ Review error reports carefully
Related Documentation
- Data Management Architecture
- PF-15: Picklist System
- PF-16: Custom Field Definitions
- PF-17: Entity Field Configuration
- PF-23: Data Manager - Object Browser
- PF-24: Custom Objects
- PF-25: Raw Data Editor
- PF-26: Object Permissions
Last Updated: 2026-01-08
Next Review: When new workflows are added or existing workflows change