# Grouping fields

1. If the organization is home to multiple services, the field `API` name ***SHOULD*** be prepended with the name of the service that required the field, followed by an underscore. 
    - This ***MUST NOT*** be the case if there is only one service using the object.
2. If several services use the field, or the field was originally required by a service before being used by others: the field `API` name ***MUST (but you probably won't)*** be prepended with the name of the service that is responsible for the user story that lead to the field creation, followed by an underscore. The Description of the field ***MUST*** indicate which services use the field.<sup>1</sup>
3. In the case the field is use differently by different services, the Description of the field ***MUST*** contain a summary description of each use.
4. If a field is created to host a value for technical reasons, but is not or should not be displayed to the users, the `API` name ***MUST*** be prefixed with `TECH` and an underscore.
5. If more than 50 fields are created on an object, a consultant ***SHOULD*** consider using prefixes to group fields in the same manner as technical fields, in the format of `$Groupname` followed by an underscore.

## Examples

<table id="bkmrk-object-field-type-co"><tbody><tr><th style="width: 68.9667px;">Object</th><th style="width: 78.1px;">Field type</th><th style="width: 136.583px;">Comment</th><th style="width: 105.433px;">Field Label</th><th style="width: 206.233px;">Field API Name</th><th style="width: 213.883px;">Field Description</th></tr><tr><td style="width: 68.9667px;">Case</td><td style="width: 78.1px;">Lookup</td><td style="width: 136.583px;">Looks up to Account</td><td style="width: 105.433px;">Service Provider</td><td style="width: 206.233px;">ServiceProviderRef\_\_c</td><td style="width: 213.883px;">Links the case to the Service Provider who will conduct the task at the client's.</td></tr><tr><td style="width: 68.9667px;">Account</td><td style="width: 78.1px;">Formula</td><td style="width: 136.583px;">Made for the Accounting department only</td><td style="width: 105.433px;">Solvability</td><td style="width: 206.233px;">Accounting\_SolvabilityAuto\_\_c</td><td style="width: 213.883px;">Calculates solvability based on revenue and expenses. Sensitive data, should not be shared.</td></tr><tr><td style="width: 68.9667px;">Contact</td><td style="width: 78.1px;">Checkbox</td><td style="width: 136.583px;"> </td><td style="width: 105.433px;">Sponsored ?</td><td style="width: 206.233px;">IsSponsored\_\_c</td><td style="width: 213.883px;">Checked if the contact was sponsored into the program by another client.</td></tr></tbody></table>

*<sup>1</sup> While modifying API names post-deployment is notoriously complicated, making sure that field are properly recognizable is better in the long term than avoiding a maintenance during a project. Such modifications **SHOULD** be taken into account while doing estimations.*