Record history in the system by the use of notes. Notes can be as simple and just a text input field. Complex note types can include custom defined fields.
These serve to remove silos of information around the organization. Replace spreadsheets with discrete information, with custom notes. Capturing all note types against a contact, giving a full history for them. Extract the spreadsheet later, for a date range, by note type.
Create tasks for each contact. These tasks then appear on the diary and tasks report. You may create follow-up tasks to add to the other tasks for the contact.
An example of this would be a hospital visit. You could add a note with a date for a follow-up visit. A task is added to the diary and task report for you.
Use a full page note for storing a lot of information against the contact. You could see and edit it on its own screen. This is neater than seeing it amongst other notes for the contact.
An example be health testing where you keep multiple metrics. A health test note would open to its own screen and display all the fields.
Another example would be a survey with even more fields. The note would open to its own screen. Multiple tabs of information would be available to click through.