Skip to main content

Configure Extra Table Fields

Use Extra Table Fields to define the complete column structure for supported Employee Hub tables, and the filters employees can use above them. Configure each column and filter with flair__Extra_Table_Field__mdt.

Who can use this?

Salesforce Admins who manage fields and the Flair Extra Table Field custom metadata type in Salesforce Setup. Employees see the columns and filters in the Employee Hub.

Before you begin

  • Create the Salesforce field before adding it as a table column or filter, unless you use a supported $custom column.
  • Record the object's API name and the field's API name.
  • Identify the table ID when the column or filter should appear in one table only.
  • Grant the Employee Hub integration user read access to any field you add, and for a filter also to the object it looks up and that object's Name field. A field you created yourself is not in the packaged Flair Hub permission set.

Review supported tables

TableTable ID
My Absencesflair__Absence__c.MyAbsences
Manager Absencesflair__Absence__c.ManagerAbsences
My Expensesflair__Expense__c.MyExpenses
Manager Expensesflair__Expense__c.ManagerExpenses
Directoryflair__Employee__c.Directory
Time Tracking History & Overtime (employee)flair__Time_Entry__c.HistoryEmployee
Time Management timesheets (manager)flair__Time_Entry__c.ControllingManager

The two time-entry tables behave differently from the others: their columns are off by default. Each person turns them on per table with the gear icon above the table, under Customize columns. Values are shown per day, so when a day has several time entries the distinct values are listed together in one cell.

Create an Extra Table Field

  1. In Salesforce Setup, enter Custom Metadata Types in Quick Find.

  2. Open Custom Metadata Types.

  3. Next to Flair Extra Table Field, click Manage Records.

  4. Optional: Under View, filter the existing records by object, such as Absence or Expense.

    Extra Table Fields custom metadata records

  5. Click New.

  6. In Object API Name, enter the target object, such as flair__Absence__c or flair__Expense__c.

  7. In Field API Name, enter the field or supported $custom column.

  8. Configure any optional settings in Review Extra Table Field settings.

  9. Click Save.

    Extra Table Field custom metadata record with column settings

Review Extra Table Field settings

SettingWhat it does
Object API NameIdentifies the Salesforce object. This setting is required.
Field API NameIdentifies the field or $custom value to display. This setting is required.
FilterOffers the field as a filter above the table instead of as a column. Only lookup fields can be filtered.
ActiveShows the column or filter. Clear it to hide it without deleting the metadata record.
Table IdLimits the column or filter to one table. Leave it empty to show it in every supported table for the object.
PositionSets the left-to-right order. Lower numbers appear first; the typical range is 0 through 9.
Column TitleOverrides the field label in the table header, or the placeholder of a filter's dropdown. Leave it empty to use the Salesforce field label.

Assign a unique Position to each column for predictable ordering. Fields with the same position can appear in an undefined order.

Use a $custom column

$custom columns are computed or special Employee Hub values that do not exist as Salesforce fields.

ObjectField API NameValue
Absence$custom.nameAbsence name or title.
Absence$custom.absenceCategoryAbsence category.
Absence$custom.approverApprover information.
Absence$custom.commentsComments.
Absence$custom.employeeEmployee information.
Absence$custom.loomLoom video link.
Expense$custom.commentsComments.

For example, to show employees in Manager Absences, configure these values:

SettingValue
Field API Name$custom.employee
Object API Nameflair__Absence__c
Table Idflair__Absence__c.ManagerAbsences

Configure a filter above a table

A record with Filter selected becomes a dropdown in the table's Filter by: row instead of a column. Employees then narrow the table to the records that field points to.

Field API Name must name a lookup field, because the dropdown offers the records that field references. Any lookup field on the object works, including fields that have never had a filter before, as long as the Employee Hub integration user can read the field and the object it looks up. The dropdown lists the records employees are actually assigned to, so a location nobody is assigned to is not offered.

To let employees filter the Directory by manager, create a record with these values:

SettingValue
Object API Nameflair__Employee__c
Field API Nameflair__Manager__c
Table Idflair__Employee__c.Directory
FilterSelected
Position4

Position orders the filter row from left to right, and Column Title renames a dropdown, so Office can replace the Location field label. Clearing Active removes the dropdown, and a hidden filter stops filtering the table even when its record IDs are still in the page URL.

The same field can be both a column and a filter. Create two records: one with Filter selected, one without.

note

The Directory is the only table that reads filters today. On any other table, a record with Filter selected has no effect.

Review the Directory filters

flair ships three filters for the Directory, all active, so the filter row looks unchanged until you edit them:

FilterField API Name
Locationflair__Location__c
Departmentflair__Department__c
Team$filter.team

Team uses $filter.team because team membership lives on flair__Team_Member__c rather than in a field on flair__Employee__c. flair names filters like this one, so you can hide, reorder, and rename them, but you cannot create new ones. Organizations that do not use teams clear Active on this record.

A dropdown appears whenever its record is active, even when there is nothing to choose from. Clearing Active on every filter of a table removes the whole Filter by: row, including Clear Filters. The table and its search box keep working.

Configure columns for specific tables

Use Table Id when two tables of the same object need different columns, such as My Absences and Manager Absences, or the employee History & Overtime and manager Time Management timesheets.

For My Absences, create a record with these values:

SettingValue
Object API Nameflair__Absence__c
Field API Nameflair__Amount__c
Table Idflair__Absence__c.MyAbsences
Position3

For Manager Absences, create another record:

SettingValue
Object API Nameflair__Absence__c
Field API Nameflair__Approval_Status__c
Table Idflair__Absence__c.ManagerAbsences
Position3

To show a time-entry field to employees only, and not to managers:

SettingValue
Object API Nameflair__Time_Entry__c
Field API Nameflair__Onsite_or_Home_Office__c
Table Idflair__Time_Entry__c.HistoryEmployee
Position3

Add a standard Salesforce field

Standard Salesforce fields such as CreatedDate can also appear in an Employee Hub table. For example:

SettingValue
Object API Nameflair__Absence__c
Field API NameCreatedDate
Position9
Column TitleCreated Date or empty

Troubleshooting

A column does not appear

  1. Confirm that Active is selected.
  2. Confirm that Object API Name and Field API Name use API names, not labels.
  3. Confirm that the Salesforce field exists or that the $custom value is supported.
  4. Confirm that Table Id matches the displayed table.
  5. In a time-entry table, confirm that the column is enabled under Customize columns, and expand a week to see the daily values.

A filter does not appear

  1. Confirm that the Employee Hub integration user has read access to the field, to the object it looks up, and to that object's Name field. Without it the Employee Hub cannot read any extra field value for the table, so columns can disappear alongside the filter.
  2. Confirm that Filter and Active are both selected.
  3. Confirm that Field API Name names a lookup field. Other field types reach the Employee Hub, which renders no dropdown for them.
  4. Confirm that Table Id is flair__Employee__c.Directory.
  5. Confirm that at least one employee references a record through that field. A field nobody uses has no options to offer.