Page MenuHomePhabricator

Recurring donation to the endowment?
Open, Needs TriagePublic

Description

Donor in Zendesk ticket #1869743 / CID 18906237 received a Springlish email on 04/27 and noted that they had trouble setting up a recurring so we sent them the link to start a recurring donation by visiting this page.

They have now setup a recurring donation, however in Civi it indicates that this recurring donation is to the endowment. They also received a donation receipt for this donation noting it is a "one-time gift" to the endowment.

Screenshot 2026-04-28 at 10.15.14 AM.png (1,166×188 px, 31 KB)

Questions:

  1. As we don't offer a recurring donation option to the endowment on our donation form could we look into how they may have set this up?
  2. Additionally, as we don't offer this should we cancel and refund this gift so that they can setup a recurring to the annual fund instead?
  3. Could we double check to see if any other donors have setup a recurring to the endowment?

Thanks!

Event Timeline

Yes, we've seen a few of these. There have been 12 over the last 12 months.

What happens now is the first of the recurring gifts is endowment and then the later gifts in the series are regular foundation gifts. If the donor is happy with that, then we probably don't need to make any changes.

Can we ask the donor how they set up the gift? It doesn't seem to be possible via the website and it isn't a post-payment monthly convert, so I'm not sure how they are able to do that.

@Lars the utm_source looks like it mentions both recurring and endowment "utm_source":"fr-redir.default~default~SupportingWikimediaEnd~default~control.rcc"

The email is coded to ask one time for endowment and recurring for annual fund, or should be. Perhaps there was an issue with the coding, as it looks like they clicked through on the email link.

@Lars we don't have a recurring receipt for endowment, so the donor doesn't actually get a confirmation that their gift is recurring. The receipt they receive states one-time. I feel we need to either block these or ensure we have a receipt with the correct information that will deploy in these cases.

@krobinson Agreed, we should prevent these from being created.

I don't understand how this is possible

From the tracking parameters (medium=endowment, campaign=spontaneous, appeal=SupportingWikimediaEnd) it looks like they came in via the link on https://wikimediaendowment.org/ways-to-give/. But trying that link it does correctly hide the recurring options.

Other examples, in case it helps to figure out how these are happening:

Contribution DateUTM KeyUTM MediumReferrerAppealUTM SourceUTM CampaignRecurring ChoiceLanding Page
2025-05-09 12:58:12otherAmt_1~ptf_1~time_19endowmentdonate.wikimedia.org/JimmyQuotesp74937699.default~default~JimmyQuote~default~control.rccSEC2025_Email1Organicdefault~default~JimmyQuote~default~control
2025-05-28 13:21:05otherAmt_0~ptf_1~time_44endowmentdonate.wikimedia.org/JimmyQuotesp74935823.default~default~JimmyQuote~default~control.rccSEC2025_Email1Organicdefault~default~JimmyQuote~default~control
2025-07-16 18:32:54otherAmt_1~ptf_1~time_16endowmentdonate.wikimedia.org/wiki/...JimmyQuoteWaystogive.default~default~default~default~control.rappleC11_WaystogiveOrganicdefault~default~default~default~control
2025-07-23 10:22:51otherAmt_0~validateError_1~time_12endowmentdonate.wikimedia.org/wiki/...JimmyQuoteWaystogive.default~default~default~default~control.rappleC11_WaystogiveOrganicdefault~default~default~default~control
2025-08-30 21:31:09otherAmt_0~ptf_1~time_38endowmentdonate.wikimedia.org/JimmyQuoteWaystogive.default~default~default~default~control.rddC11_WaystogiveOrganicdefault~default~default~default~control
2025-09-13 23:37:19otherAmt_1~time_9endowmentdonate.wikimedia.org/JimmyQuoteendowmentSite.default~default~default~default~control.rappleendowmentSiteOrganicdefault~default~default~default~control
2025-10-01 20:16:52otherAmt_0~validateError_1~ptf_1~time_13endowmentdonate.wikimedia.org/JimmyQuoteWaystogive.default~default~default~default~control.rccC11_WaystogiveOrganicdefault~default~default~default~control
2025-10-08 16:19:36otherAmt_0~ptf_1~time_49endowmentdonate.wikimedia.org/JimmyQuotesp75208949.default~default~SupportingWikimediaEnd~default~control.rpaypalC2526_Email2Organicdefault~default~SupportingWikimediaEnd~default~control
2025-10-21 16:05:47vw_420~vh_746~otherAmt_0~ptf_1~time_15endowmentdonate.wikimedia.org/JimmyQuotesp75228634.default~default~SupportingWikimediaEnd~default~control.rappleC2526_Email2Organicdefault~default~SupportingWikimediaEnd~default~control
2025-10-27 20:44:42vw_1600~vh_973~otherAmt_0~ptf_1~time_19endowmentdonate.wikimedia.org/JimmyQuotesp75228634.default~default~SupportingWikimediaEnd~default~control.paypalC2526_Email2default~default~SupportingWikimediaEnd~default~control
2025-11-11 03:58:07vw_1912~vh_954~otherAmt_0~ptf_1~time_37endowmentdonate.wikimedia.org/JimmyQuotesp75255321.default~default~SupportingWikimediaEnd~default~control.paypalC2526_Email3default~default~SupportingWikimediaEnd~default~control
2025-11-16 19:48:46vw_1440~vh_819~otherAmt_0~ptf_1~time_13endowmentdonate.wikimedia.org/WP25sp75255321.default~default~SupportingWikimediaEnd~default~control.rccC2526_Email3Organicdefault~default~SupportingWikimediaEnd~default~control

As some of these come from email, adding @ppenloglou and @nisrael to this task.

I'm intrigued by the impossible scenario. I'll dig into the logs to see if I can find any more information.

@krobinson, in the short term, do you want us to add a hard block to the code which strips the recurring flag, if present, when donors land on the endowment payment form? That should prevent this from happening in future.

Yes, I would say so. If that is the workaround, then let's do it. As I think we're legally out of compliance if we're not sending donors the correct receipt, so we should block these. Thanks @jgleeson

Change #1278511 had a related patch set uploaded (by Jgleeson; author: Jgleeson):

[mediawiki/extensions/DonationInterface@master] Set recurring to false when loading the Endowment form.

https://gerrit.wikimedia.org/r/1278511

Very odd behavior. Our links look correctly formatted, however I tested adding a recurring parameter to an Endowment hyperlink and that does not populate a recurring ask on an Endowment donation page. It would be hard to imagine how a donor could reach that status through the email > donatewiki flow.

I've found the root cause here, and it's a bug in the code on payments-wiki. The scenario seems to be that a donor visits us first via an endowment link, which sets utm_medium=endowment in their session. They then visit us later via a non-endowment URL that contains a different wmf_medium=value URL parameter. When this happens, we do not clear the old utm_medium=endowment value, leading to the bug.

I've managed to simulate the bug by first hitting an endowment URL e.g. https://payments.wikimedia.org/index.php?title=Special:GravyGateway&appeal=JimmyQuote&payment_method=cc&recurring=0&utm_medium=endowment&utm_source=test.endowment.cc&utm_campaign=spontaneous&uselang=en&language=en&currency=USD&amount=20&country=US&first_name=Jimmy&last_name=Wales&street_address=1+Montgomery+Street&city=San+Francisco&state_province=CA&postal_code=94104&email=jwales%40example.com

and then hitting the form the donor last visited https://payments.wikimedia.org/index.php?title=Special:GravyGateway&appeal=WP25&country=US&currency=USD&payment_method=cc&recurring=1&gateway=gravy&frequency_unit=month&uselang=en&amount=10.4&wmf_medium=wmfSite&wmf_campaign=givemonthlypage&wmf_source=79152.default%7Edefault%7EWP25%7Edefault%7Econtrol.rcc&wmf_key=vw_629%7Evh_743%7EotherAmt_0%7Eptf_1%7Etime_14&first_name=Test&last_name=Test&street_address=test&city=test&state_province=CA&postal_code=11111&email=test%40example.com&

And upon submitting the form (with intentionally broken cc data), I can see utm_medium=endowment is still being sent in the API call (it's not picking up the wmf_medium override). See screenshot below:

image.png (1,915×1,034 px, 386 KB)

Fascinating find @jgleeson, thank you so much for figuring it out!

Change #1278529 had a related patch set uploaded (by Jgleeson; author: Jgleeson):

[mediawiki/extensions/DonationInterface@master] Always overwrite older utm_* params with current wmf_* values

https://gerrit.wikimedia.org/r/1278529

Change #1278511 merged by jenkins-bot:

[mediawiki/extensions/DonationInterface@master] Set recurring to false when endowment detected.

https://gerrit.wikimedia.org/r/1278511

Change #1278529 merged by jenkins-bot:

[mediawiki/extensions/DonationInterface@master] Always overwrite older utm_* params with current wmf_* values

https://gerrit.wikimedia.org/r/1278529