Teams serve a different purpose for customers/end users and for staff power users. For end users, unless you need to provide multiple branded interfaces to different sets of users, or expect your end users to access the system in multiple languages, it is simplest to put them all in one team with the word 'customer' in the title, such as Customer Team or Internal Customer Team.
If you need to provide a custom look and feel and customer branding to different sets of users, then you will need a separate customer team to go with each look and feel scheme. Teams can also be associated with a different default language, so it would make sense to have language-based customer teams if you were planning to run the program in a multi-lingual environment.
For staff power users, teams are used to identify the functional units to whom records may be assigned. You will want a staff team for each assignment group (sometimes called a Queue). Teams can be hierarchical, so you may set up a hierarchy such that you can send an email to a mid-level team and the members of its subteams will receive the email. Users have one primary team, which defines the look and feel they see and their default table views. They can be members of as many additional teams as needed, so they are CC'd on emails and included in the assignment list for items assignable to those teams.