Record history in the system by the use of notes. Notes can be as simple and just a text input field. Custom note types can include user defined fields.
An example of a user defined note, is a contact note, with the following fields:
In this example a task would be automatically created for the follow up.
Capturing notes against a donor, gives a full history for them. Extract the spreadsheet later, for a date range, by note type.
All notes keep a record of date captured and who created it.