So we have a unique use case. The organization collects donations from employees of various departments with various roles at the organization. Collecting employee information like title, department, etc seems pretty straight forward using custom fields and profiles. However, lets say, 3 years down the road, a donor changes their department, the field would be updated when they renew their donation and would be accurately reflected in the system, but it would now impact historical information. Their donation records would stay the same, but their donations would be affiliated with the new department.

Am I making sense? Is custom fields the right approach? Alternatively, we may just download historical data and use that for reports comparing campaign years.

2 Answers 2


There are several approaches to handling this. Custom fields are one approach. Another is to use Detailed Logging, which will keep historical records, although they may not necessarily be in the format you most desire. They also take up a lot of disk space, since you're keeping the history of every change in CiviCRM!

If you try the detailed logging approach, also considering installing the Extended Reports extension, which has reports that pull data from the log tables.


Jon mentions 'Custom Fields' - to expand on that - if you put the Custom Fields on the Contribution record then when someone changes it will not change the values in previous Contributions.

You may be able to do this via an Extension or some js to copy the current value from the Contact record in to the custom field on the Contribution at the time of the Contribution record being created.

May be more effort than you are wanting but does deliver the outcome.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.