How to limit contacts, calls, etc. to Accounts owned


I’d appreciate help with setting up roles and groups correctly for our company’s usage.

We have salespeople who will work with specific accounts, and a customer service team that works with all accounts.
The customer service team will work with all accounts and might create contacts, opportunities, calls, etc. under any account.
We want each salesperson to only see the accounts they are working on. They should see any contacts, documents, opportunities related to their accounts, whether created by themselves or the customer service team.

I’ve started off by creating a Salesperson Role that only has access to the Accounts it owns. Then I assigned each account to the salesperson that will manage it. In the Salesperson role, I can also limit the Opportunities, Contacts, Calls, etc. to Owner but if I do that, the salesperson will not see the items on their account that are created by the customer service team.

Anybody have a suggestion on how to handle this scenario? Thanks for your help!