Tracking Last Time a Contact was ..Contacted

What’s the best way to track touch-points for contacts? I want my users to be able to search contacts by the last time they were contacted, and ideally, I’d like to have that record be automated. But I’m not coming up with any great ideas.

Specifically, I have a salesman who likes to create Tasks directly from her contact record – I know Goals can be created based on Task completion in a Sequence – but can I do anything similar with Tasks made from the contact record?

Am I barking up the wrong tree? Is this bad behavior from my salesman - should they be tracking some other way? I’d love any ideas on how to solve this problem.

@Shawn_Hillman, have you considered a traditional sales pipeline?