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:1
- Name:
employee_badge_prefix(snake_case) - Label: “Employee Badge Prefix”
- Category: HR
- Description: “Prefix codes for employee badges”
ADM- AdministrativeCLN- ClinicalOPS- OperationsSUP- Support
Step 2: Define Custom Field
1
- 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”
Step 3: Configure Field Layout (Optional)
1
badge_number field- 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
Step 4: Use in Employee Forms
Update HR employee form to include custom fields:Step 5: View in Data Manager
1
badge_number in “Custom Fields” section- ❌ 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
1
- 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 2: Add Fields
1
- 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
Step 3: Create Records
1
- Employee: Select from dropdown
- License Type: Select from picklist
- License Number: Enter (validated)
- Expiration Date: Select date
Step 4: Import Existing Data (Optional)
If you have existing license data in CSV:1
- CSV “Employee Name” → “Employee” (lookup)
- CSV “Type” → “License Type”
- CSV “Number” → “License Number”
- CSV “Expires” → “Expiration Date”
- Fix any errors highlighted in red
- Review success/failure count
- Click Done
Step 5: Configure Permissions
1
- HR Admin: View, Create, Edit, Delete
- HR Manager: View, Create, Edit
- Staff: View only
- License Number: Hide from Staff role
- Expiration Date: View only for HR Manager
- ❌ 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
1
- Click + New Category
- Name: “Clinical Operations”
- Description: “Clinical and operational data”
- Icon: “stethoscope”
- Color: “green”
- Click Create
- Click category row
- Update name, description, icon, color
- Click Save
- Click category row → Delete
- Confirm (only if no objects assigned)
Step 3: Assign Objects to Categories
1
Step 4: Set Favorites
1
Step 5: Edit Object Metadata
1
- Display Name: Custom name for your org
- Description: What this object is used for
- Icon: Visual identifier
- Category: Organize with related objects
- ❌ 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
1
- All standard fields
- All custom fields (from PF-16 definitions)
- Current filter applied
Step 2: Edit Offline
1
- Update multiple records
- Add new records (follow CSV format)
- Fix data errors
idcolumn (primary key)organization_id(will be set automatically)- Column headers
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
1
- Select CSV file
- Click Upload
- System auto-detects column mappings
- Verify mappings are correct
- Fix any mismatches
- Review validation results
- Green: Valid rows
- Red: Errors (fix before importing)
- Yellow: Warnings (review but can import)
- Review summary:
- Total rows: 150
- Valid: 148
- Errors: 2
- Click Import to proceed
- Success: 148 rows imported
- Errors: 2 rows failed (download error report)
- Click Done
Step 4: Verify Import
1
- ❌ 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
1
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
1
salary field (or custom field)- HR Admin: Edit
- HR Manager: View
- Staff: Hide
Step 4: Verify Permissions
1
salary field is hiddensalary field 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:1
is_active = true)CustomFieldsSection component is in formPicklist Items Not Loading
Symptoms: Dropdown empty or loading forever Solutions:1
is_active = true)usePicklistItems hook is called correctlyImport Validation Errors
Symptoms: CSV import fails with validation errors Solutions:1
Permissions Not Working
Symptoms: Users can see/edit fields they shouldn’t Solutions:1
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