There are likely multiple ways to accomplish this, but here’s an outline of my favorite approach for this.
Use the Service Hub and create a pipeline for current customers. You can customize the stages of the pipeline to match where that customer is in their lifecycle. For example, onboarding, renewal, upsell/cross-sell, etc. You can also add custom properties to track the other data points. For example, I would create a property using a multiple checkbox property type which allows an account manager to identify the cross-sell and upsell opps. I would probably do the same for current products/services. It can also track last activity either automatically with logged conversations or you could also create a date property if there is a specific date you want to track, such as renewal date or quarterly review date.