Hi Jake
I had similar scenario. I suggest getting distinct list of the supervisorEmails, than you loop this list and filter the records in Overduesitems and within the loop send them emails.
Actions should look like following
1. from the source table you get to the powerautomate: ('OverdueItems') add Select action and switch map to text mode and add item()?['supervisorEmails'] only # this will create simple array pulled all records from column named 'supervisorEmails'
1.a for a complex array you can map as name 'supervisorEmail' with item()?['supervisorEmails']
1.b than you need to add new action 'Compose' with join(body('Select'), ',') #this will turn to simple array you will use in next step for union
2. Then use Compose let's name 'GetSupervisorEmails' and union the emails to get distinct values of emails, expression looks like following: union(variables('Select'),variables('Select'))
3. Next action is loop using the 'Apply To Each' with the outputs to loop of 'GetSupervisorEmails'
4. in the loop you go and add 'Filter array' action with body of your source ('OverdueItems') with filter field 'SupervisorEmail' equals/contains the items('Apply_to_each')
5. Optional - Still inside the loop add the table transformation you want (Create HTML table or create csv) from the 'Filter array' outputs #this is optional but comes handy if you want to have a csv attached in the email or just for your reporting.
6. again within the loop send email to the items('Apply_to_each') #this picks up current item processed in the loop - the 'SupervisorEmail'
Let me know if you got stuck with the steps.
*Zdenka