veda-consulting-company / uk.co.vedaconsulting.mailchimp

Other
22 stars 43 forks source link

Subscribers lost by push CiviCRM→Mailchimp sync #328

Closed artfulrobot closed 4 years ago

artfulrobot commented 5 years ago

The Push sync (CiviCRM→Mailchimp) currently collects contacts from CiviCRM who are in the group and who:

  1. are not deceased
  2. do not have "Do Not Email" set
  3. do not have "No Bulk Mail (user opt-out)" set
  4. do not have their primary email on hold.

1-3 are OK, if you understand the implications. e.g. if someone has fully opted out at CiviCRM end (e.g. CiviMail opt-out link) but then later signs up to Mailchimp using a Mailchimp form, then they'll be on the Mailchimp List, and Mailchimp will send CiviCRM a webhook saying "subscribe this person"; CiviCRM will add them to the mailing group, but CiviCRM won't remove the opt-out flag. So then when a push sync is done CiviCRM will think this person should not be on the list (because of the opt-out) and will then unsubscribe them from Mailchimp. This is as-designed, but worth pointing out.

However item (4) above is problematic. If I have a valid other email address (e.g. a bulk email address) then I'll be unsubscribed if my primary address is put on hold - which is unrelated.

I propose that we drop the on_hold => 1 parameter from the API call as it's not helping anyone.

(Nb. Emails that are on hold are removed from the CiviCRM collection by the 2nd API call that's made.)

veda-consulting commented 4 years ago

@artfulrobot merged (just cleaning up old tickets)