Sprout Studio organizes your business in the way you would expect it to in real-life.
Each Lead and Shoot can have as many Clients and Contacts as you'd like. The only real difference between a client and a contact is that a client is able to login to their client portal and see everything from the shoot (i.e. invoices, galleries, contracts, etc) by default, whereas a contact does not have access to those things by default. A client is more-or-less a contact, though, and is only categorized differently for organizational purposes.
Each lead and shoot must have at least one client that is Primary Contact, which is basically your main contact for that lead or shoot. This is the contact who will be used for variables in emails, front-end messages and so on.
Adding a client or contact to a lead or shoot
To add a contact to a lead or shoot, visit that lead or shoot's Clients & Contacts page and click the "Add New" button. You can choose to add a client or a contact and whether you'd like to create a new one or add an existing one.
Toggling a client or contact's permissions
On the lead or shoot Clients & Contacts page
While on a lead or shoot's Clients & Contacts page, in the top-right corner of each contact, you can toggle:
Whether they're the primary contact or not by clicking the "Star" badge.
Whether they're classified as a client or a contact by clicking the "Client" badge.
Whether they have portal access to view this lead or shoot and all its items (i.e. invoices, contracts, galleries, etc) by clicking the "Portal" badge.
In the Edit Contact modal
When editing a contact, click the "Overview" section. Here it lists all the leads or shoots that contact is associated to. For each, you can toggle:
Whether they're classified as a client or a contact for that lead or shoot by clicking the "Client" badge.
Whether they have portal access to view that lead or shoot and all its items (i.e. invoices, contracts, galleries, etc) by clicking the "Portal" badge.