Some initial thoughts:
I think “Email Contact” should be its own data type and you can reference users via a User field. Users would also have a Contacts field that is a list. This would make managing individual contacts a lot easier with Bubble workflows to start - they could delete completely, create manually, or have those contacts create their Contact record… regardless, the User is the identifier to group them within your app’s database.
I’m not sure how extensive this list system needs to be - if your users are also creating email campaigns and whatnot, then I do think importing list members from Mailchimp, for example, will be the way to go to sync with campaigns. OAuth would be a really great way to link everything up. Mailchimp’s API allows you to change subscription status of list members, so I think with the OAuth integration, you can retrieve the current user’s list IDs to modify list member status. Or just have your users provide list IDs and use them in dynamic field areas.
What’s your overall goal and ideal scenario? Seems like there’s a lot of different ways to get stuff done, but what’s the flow supposed to look like on your User’s end? Rather, what would you like for it to be?
Gaby | Coaching Bubble