Friday, May 27, 2011 - 12:39
Written by

Hi Stuart from Korlon LLC here. Thanks to a new feature sponsored via the Make it Happen initiative, we now have membership continuity on the upsell.

In the past, when your organization used multiple membership levels (example: General Membership, Gold Membership, Platinum Membership) that meant when someone renewed online at a higher level, a new remembership was created rather than upgrading and renewing the old membership. This is no longer the case! To make the most of this new feature we've started using the automated membership reminder email feature in conjunction with this new enhancement.


Note: We use Drupal 6 and CiviCRM 3.4 on this site.


Step 1: Create a reminder email message for EACH membership level here:


Step 2: (optional) Use the Path redirect module to make pretty links for renewals that work well in a plain text format. Why this module? Standard Drupal aliases tend to not work well with CiviCRM's paths. For example: can redirect to


Step 3: Include in the reminder message a link to renew at their existing membership level, and a link to up-sell them at the next level. Here's an example:


You can renew your Sponsor membership today online or by calling (202) 939-2675.  Please consider increasing your level of support this year by committing to USNC at the next level of membership: Patron with your online payment or by calling (202) 939-2675


Step 4: Pass along a URL parameter (I call mine 'membershipbutton') that corresponds to the radio button id of the membership level they wish to renew. The URL might look like this:


Step 5: Use this javascript code in a unfiltered block or place it in your theme to get the 'membershipbutton' parameter in the URL and pre-select the membership level on the page.


That's it!


If everything goes according to plan (cross-fingers) we will see people clicking the upsell links in their emails, being redirected to the renewal page, having their membership level pre-selected, and the membership upsell renewed with continuity for their membership record. You can see some of these links in action at my client US National Committee for UN Women:






Stuart - Kudos ++ for sharing your learnings with the community in such a clear and concise post.

I've tried the new membership upgrade/downgrade but still find it unusable for following a patron's membership history. If Bob starts as a Patron member, then chooses Gold on renewal, he pays the gold rate but his membership level is still listed in Civi as Patron, both on his record and in the membership dashboard counts. How are you getting around that and its effect on reporting?

Hi Nicholai,

Are you using 3.4.0 or higher? The functionality to convert from one membership type in an organization to another when renewing, rather than creating an additional membership, was only added in 3.4.



I'm currently running 3.4.0. Give it a try and you'll see what I mean. Create a Basic membership for $20 and a Gold for $50. Add Basic to a contact (with payment). When it expires, click Renew. On the renew screen, click Change Membership Type and choose Gold. Add the payment and save. On the membership tab, note that the membership is still listed as Basic and that's where the member shows up in the dashboard and other places.

Hi Nicholai.


I tried replicating the problem you are having on my 3.4.1 install, and I cannot.  When I renew an expired membership and change the membership level, the new + higher membership level shows up on the membership tab as well as on the dashboard.


It is not insignificant that you are running 3.4.0.  Please upgrade.


If you have further problems this is not the place to ask them.  Contact the team on the forums or IRC.

When you click the "more" link next to the membership, then "renew" watch for the "change membership type" link on the next screen.


this is on 3.4.1 i am using

thanks Dave.


BTW  I forgot to mention the javascript needs the ? first in the URL parameter sequence to work.  CiviCRM can handle a URL without the ? but the javascript code cannot.

Good stuff, Stoob - very helpful.