diff --git a/README.md b/README.md
index a91b7e5edc584bd827104c04e621f2e456baf401..ff11a58e68411635d9f5cd7f9794b58769d04fc8 100644
--- a/README.md
+++ b/README.md
@@ -29,6 +29,31 @@ instance's data model (e.g., by [synchronizing with the LinkAhead
 advanced user
 tools](https://docs.indiscale.com//caosdb-advanced-user-tools/yaml_interface.html)).
 
+## Customization
+
+The sample management module can be customized by overwriting
+indivdual code and config files by using files of the same name and
+with the same relative path in your LinkAhead profile's custom
+directory.  E.g., if you want to overwrite how sample entities are post-processed in the sample upload, you overwrite
+
+```
+sample-management-custom/caosdb-server/scripting/bin/sample_helpers/sample_upload_post_processing.py
+```
+
+from this repository by a
+
+```
+profile/custom/caosdb-server/scripting/bin/sample_helpers/sample_upload_post_processing.py
+```
+
+in your server profile. When doing so, it is important that in your
+custom file, you use the exact same function names, signatures, and
+return types as in the original file. In our example, the custom
+`sample_upload_post_processing.py` needs to contain a
+`post_process_samples` that takes the samples and the csv data as
+arguments and returns the list of post processed samples.
+
+
 ## Testing
 
 There is a pre-configured `test-profile` that you can use for testing