Best practices - rodekruis/EspoCRM-knowledge-base GitHub Wiki
If you do espoCRM configuration, try to stick to these best practices:
Naming conventions
- for names of entities, fields, options: alsways use lowerCamelCase without
_
- when having multiple fields (or entities) in the same category put that in the start of the field/entity name, e.g.
financeIncome
,financeRent
, - naming ENTITIES: singular
- naming LABELS: all first letter capital
- Naming convention records: (related)entity - UUID or (related)entity - datetime(now)
- Do not write whole questions in labels
Fields
- Make all fields audited - it will help track changes made to data
- Never use integer fields for phone numbers, as the have a technical maximum of 2147483647
- For regular expression *> varchar (also phone number)
- All fields should be audited (change history)
- Remove fields that you end up not using yourself (eg. testing)
- Normally, use varchar not text field (only if really long/need newlines)
- For calculated fields, only show if populated
Entities
- Use entity type "Person" for entities containing PII (it gives you the possibility to have phone number field type and more control over PII)
- Not use default contact entity but create new one for more flexibility / has too prominent role in espo
- Avoid naming ENTITIES as following to avoid possible conflicts:
Match
Layout
- Stick to either 1, 2 or 4 column layouts for detailed views
Flowcharts and Workflows
- Add comment (incl. reason if necessary), initial and date to lines in formula/workflow
- Add description with explanation to flowchart / workflow about intended use
- Always use flowcharts, do not use workflows: they are more understandable and they can do everything a workflow can
[!IMPORTANT] Every run of a flowchart creates a Process record in the database. Running many flowcharts at the same time or a single flowchart many times a day can quickly result in taking up most of/all available disk space. In general, try to avoid flowcharts that have to run every few minutes and consider if they can be triggered less frequently based on some smart logic.
Furthermore, consider if all Process records have to be stored. If not, delete the process in a last step in the flowchart (see screenshot below). Note that deleted Processes are still stored in the database. To clean them check the checkbox "Clean up deleted records" under Administration -> Settings. This will clean up the deleted records every Y days. The number of days Y can be set in the config.php file by setting the "cleanupDeletedRecordsPeriod" parameter (https://docs.espocrm.com/administration/config-params/)
Process
- Do not create many-to-many for assigned users, instead use follow
Data Responsibility and Data Protection Impact Assessment (DPIA)
- Be critical regarding data resposibility: reflect on the wishes of the users, not necessary to implement right away
- Users should never share email addresses
- Do not share credentials to admin account, rather make multiple admin accounts
- Hide irrelevant information for normal usars. E.g. rejected / not approved people for callcenter agents
- For fields with personal data, tick the personal data button. This makes it easier to define roles, especially for api users (e.g. PowerBI user)