Page MenuHomePhabricator

Civi: Unsubscribe CIDs with 'zero net' donations
Closed, ResolvedPublic

Description

The Email team and Donor Relations would both see benefits if there were a way to automatically unsubscribe from fundraising email sends specific types of CIDs that are non-donors. These types vary but what they have in common is net zero donations: all of the donations were either refunded as fraudulent or unintended, or charged-back. Excluding these from email sends would make for more efficient email sends, and spare DR the manual work of unsubscribing them.

The types we are looking at include:

  1. wrong org: people who mistake the donation banner for their preferred charity
  1. fraud identified and refunded by Donor Relations (refunds sent from the PSP in an audit file, and Ingenico status 800s that are manually canceled in Civi by DR agents)
  1. chargebacks from all PSPs where the only activity for the CID is a chargeback
  1. PayPal fraud is a special case. It's really common, but the reversals are not in the audit file. If we moved forward on {T255199}, a script to unsubscribe these would be excellent – there are thousands of these in Civi.

@krobinson and the email team looked into whether this could be done at Acoustic, and the consensus was that it is better to do in Civi. The ask is basically, can we make an API call that unsubscribes a CID when these kinds of 'zero net' reversals reach Civi?

Considerations and notes:

  1. The simplest cases are where the CID has only one transaction. CIDs with multiple transactions that are all reversed are also worth including, if possible.
  2. Undeduped CIDs with the same email address (where one CID has a positive donation total) would need to be excluded, as it's possible these include legitimate donors.
  3. Getting a sense of the number of CIDs that would be affected might help to prioritize this task. Ingenico fraud refunds + chargebacks are over 10k each year. Are there easy ways to assess the volume of the other types (excluding PayPal)?
  4. Two ideas suggested by @KHaggard:

a) Automate the unsubscribe
b) Ensure these folks have opt-in = no because this is included in Acoustic queries. This way, they are not put on Master Suppression List (very hard to get people out of the Suppression List)

Event Timeline

Closing this out as @KHaggard did some investigating and found out that:

All refunds in Civi are handled correctly in Acoustic. Meaning that, if a donor gave only once and requested a refund, their contact record in acoustic has blank for all latest_donation_date fields, which would prevent them from being emailed by us because we require an entry for the latest donation date in our queries.

Some examples of what I mean:
Donor A gave $2 on July 1, 2020, then refunded on July 10, 2020. Acoustic's record will show a 0 donation count and blanks for all latest_donation_date fields.
Donor B gave $2 on July 1, 2019, then gave $3 on October 3, 2020. They refunded their October donation a few days afterwards. Acoustic's record will show donation count as 1 and the applicable latest_donation_date fields will show July 1, 2019.

As long as we continue what we're doing (never sending to queries without a latest donation date specified), there's no need for Donor Relations to unsubscribe in bulk as they have been doing, and there's no need for fr-tech to change anything. :)