# MAILING LIST PROBLEM
The problem is:
* we have way too many places to check who wants to be added to our mailing list
* right now we check the following bases:
* UPF workshop request form
* LPCE Registrations
* there isn't currently a connection between Airtable and Mailchimp, Mailchimp is difficult to get data out of.
* people can check on the Airtable form to add themselves to the list even if they're on our Mailchimp list.
Why do we use Mailchimp?
* Sends emails to people!
* It's how we maintain our contacts for emails
* Can tag within contacts, to target who messages are going to
* Is also used as an email formatting / drafting tool for sending HTML emails
## Potential Solutions
### Problem: Getting people into Mailchimp
1. What about using a 3rd party form tool, like [Jotform](https://www.jotform.com/help/163-how-to-integrate-with-mailchimp)? or [Typeform](https://www.typeform.com/).
* It's dangerous to have a second place that holds state information (Like Mailchimp: `subscribed` vs `unsubscribed`).
2. Adding a link to the Bok Center website that would route them to a form to add them to the mailing list.
* It's likely that people wouldn't follow through, or would abandon the Airtable form without submitting it.
### Problem: Getting Mailchimp into Airtable
1. Creating a webhook to synchronize [Airtable and Mailchimp](https://mailchimp.com/developer/guides/sync-audience-data-with-webhooks/#at-a-glance).
2. Zapier integrations between Airtable and Mailchimp have largely failed.
### Proposal: Sync Airtable and Mailchimp
Goal:
For there to be a table for records of people and a list of their Mailchimp audiences.
Initial steps:
1. get current lists from Mailchimp
2. add to `BokCentral.Main(?).MailchimpSubscriptions` table
3. check `BokCentral.Main.People` records by `email` to see if a person exists, if so, link to that person. If not, create person.
4. OR should this live in `BokForms.Main` or `BokAdmin.Main` or `BokAdmin.MailingLists` even?
5. `BokCentral.Main(?).MailchimpSubscriptions` table should have either a multiselect for what Mailchimp terms audiences OR maybe you just rebuild the filters that generate those audiences (since each audience is the product of filters that should be doable within this Airtable table)
6. relatedly, I suppose we need to add any people properties we might want to filter by (or just know) when we add the synched view of `BokCentral.Main.People`
7.
Ongoing steps:
1. on each new form, we include a checkbox for "Add me to Mailchimp"
2. check to see if they're already on the Mailchimp list
3. if not, add them
4. change `isOnMailchimp` state to `true`
5. periodically pull down all Mailchimp contacts and do intial steps again for any records not already on Mailchimp or with different info