We currently have a feature that allows users to add a Donate form to their page, but this feature is disabled unless you do two things:

  1. Upgrade to a paid account
  2. Connect to Stripe

We want to enable this feature in Free accounts to allow the user to try using the feature before they decide to upgrade. Publishing the page is restricted and is only possible after upgrading.

Here are a couple ideas I explored:

Idea 1 - A notification banner above the Donate form that says, "You cannot publish this page until you upgrade your account. A Stripe account is also required."

Idea 2 - Add a notification banner above the Donate form that says, "You cannot publish this page until you upgrade your account." Once upgrade has been completed, another notification about Stripe is introduced.

The problem with Idea 1 is I feel like having two actions in a notification might be a bit much. It can also get quite wordy.

The problem with Idea 2 is Stripe isn't available in other countries. So it would be upsetting if you upgrade only to find out afterwards that Stripe isn't available in your country.

Any other suggestions? What is the best way to convey these two points?

  • I think while the user is upgrading to paid account, he should be forced to connect to stripe! Commented Aug 20, 2019 at 10:57
  • Quick question. If Stripe is unavailable in some of the countries that your users might come from, then why is it mandatory? You want to mandate something, you must ensure it can be done by every single user. Otherwise, they will get pissed, ask for refunds and cause a PR disaster. If the Stripe account is mandated, I will suggest asking them to connect to Stripe first before asking for upgrade. If they don't wish to connect to Stripe, you save on the refund process. Commented Aug 22, 2019 at 5:48

2 Answers 2


It's all in the language.

If you want to encourage your users to donate, explain all preconditions at once, thus definitely idea 1 over idea 2, especially if Stripe availability is a potential stumbling block. Do not disclose piecemeal here.

That aside, use brief, directive, and encouraging phrasing. Like so:

"To publish this page, upgrade your account and connect to Stripe".

Two or three actions in a notification is not too much to process if the grammatical structure of your sentence conveys its action-condition structure with clarity. Hence, list the presumed goal first ("To publish..."), followed by enumerated directives ("upgrade [so-and-so]" and "connect [to so-and-so]").

A phrase that starts with "You cannot...", while perhaps a technically accurate reflection of the underlying code structure, is an immediate deterrent: I'll pay much less attention to whatever reasoning might follow. By the time I get to the "until..." part, this has me thinking 'please don't fuss, just tell me what to do and let me get on with it'. If another obstacle is then presented to me in a second, afterthought-style sentence ('oh, by the way, you also need...'), that has me wonder what other potentially unfulfillable conditions lurk further beneath.

Nah, I'm losing interest!

Therefore "To [goal verb + object], [action verb 1] + [action object 1] and [action verb 2] + [action object 2]": The goal is immediately named, thus attainable, and here's how you'll get there... do 1, then 2,(and then 3). Presto.

As to the availability of Stripe in some countries but not others - is there a way of ascertaining this from the user's/server's IP address? If your user cannot connect to Stripe due to location, the option to publish basically cannot be fulfilled and should not be offered to them. If we lead them down an experimental path only to unearth frustration, that will leave a bad taste.

One way to test this manually is to add a system check affordance to the 'Donate / Publish' (?) notification; add "Check Stripe availability" as a link button.

Alternatively, certainly less ideal, you could prefix a country selection to the whole control set by which you upgrade your account in the interest of publishing. That could filter out the upgrade option altogether, so you won't be presented with an option you likely cannot take advantage of.

The Stripe dependency is ultimately more of a business model cul-de-sac than a problem solvable by UX or labelling language: The whole offering seems to be somewhat reliant on a third-party service, and some audience segments are at the mercy of that service's availability. Since I'm a bit of a stickler for roles and responsibilities first, and collaboration among them next; what does the product manager have to say about the Stripe dependency decision?

  • Thanks for your thorough reply, Andres. This still an experimental feature. We're testing out quickly whether or not it'll gain traction.
    – M Bo
    Commented Aug 26, 2019 at 17:31
  • Ideally, we should hide this feature to users located in countries where Stripe is unavailable. But we do have a percentage of users who are freelancers/contractors - ie: they will write articles and publish it for our users (the actual account owners). The account owners may want these contractors to use this feature for them, however, this might be an issue should the feature not be available in the contractor's country. Admittedly, this user-base may not be that large, so I don't know how big of a problem that will be.
    – M Bo
    Commented Aug 26, 2019 at 17:35

One option would be detect if stripe is available in user's country based on settings/profile. If that is not available, say - "Stripe is not available, thus can not proceed with form" or something of that sort.

If stripe is available, we can say - "Please upgrade your account and connect to stripe to publish this form." Now when user will proceed for upgrading, make it a sequencial process to connect to stripe as well. In case user doesn't choose to connect to Stripe after upgrading, a warning message can be shown to reinforce that both things are required to publish form

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.