Hey there, great question — this is a super common setup puzzle when working with clients and internal work side by side. I work at Asana, happy to share what I’ve seen work well.
A few patterns that scale
-
One team per client: Best when each client has multiple projects, unique members, and different permissions. Keeps things tidy if the engagement is big and ongoing.
-
One “Clients” team with one project per client: Great for lighter engagements where each client only needs a single project and you want a short, clean team list.
-
Hybrid approach: Keep an internal team with an internal project. Create a client-facing project shared with the client. Use multihoming so tasks that should stay internal live only in the internal project, while client-facing tasks live in the shared project. +1 to the suggestion here: https://forum.asana.com/t/using-portfolios-to-manage-client-projects-where-some-are-private-others-are-client-facing/139722/4
How I handle active vs inactive
-
Use Portfolios for visibility. Create “Active Clients” and “Archived Clients” portfolios. Move client projects between them as status changes.
-
Archive projects when a client is inactive. This removes them from day-to-day views but keeps the history.
-
If you used one team per client and want to keep the team list clean:
-
Set the team to Private or Request to join
-
Remove members who don’t need access
-
Optionally rename to “ZZ Client - Archived” to push it to the bottom of alphabetical lists
-
Team sidebar clutter usually comes from membership, so leaving teams you don’t need will declutter your view
Permissions tips that help
-
Share only the client-facing project with the client. Keep your internal project private to your team. Multihome tasks that need dual visibility.
-
Guests only see what you share with them, so you can keep broader structure internal.
Operational tips
-
Create a client project template with your standard sections, custom fields, and rules so every new client starts consistent.
-
Add a “Client” custom field and a “Client Status” field (Active or Inactive) to help with reporting and quick filtering.