We had a request for some functionality where a not-logged-in user could check the status of their membership easily by entering their member number (internal ID) or email address into a field. After submitting the form, they'd be taken to a page that would show them their current membership status, if one exists. I can see this having some additional functionality as well:

  1. They'd be shown if there are multiple contact records that match if an email address was used
  2. A "renew now" button could be shown beside each returned result, would be tokenized / checksummed for them

Have any of you heard of anything like this? Does this already exist? Seems like it could be a cool thing for users of sites that don't require logging in to join (like ours) to be able to check their status, and potentially help reduce duplicates in the database.

  • Additionally, is there any way to easily do this in Civi using profiles and/o profile listings?
    – Evan
    Commented Jan 29, 2016 at 17:32

2 Answers 2


In a slightly different way this is possible with checksum tokens.

You can create a profile or a contribution page with membership data. Then you send a Mailing to all people who need a renewal (soon). That Mailing contains a link to the profile or contribution page with their contact ID and an individual checksum token as parameters.

When people click that link they see their data in the profile or contribution page and have the option to change it or to get a membership renewal.

For more info see http://wiki.civicrm.org/confluence/display/CRMDOC/Tokens

From this page:

There is a very powerful feature to allow you to send an email with CiviMail to your constituents with a link to the contribution form, profile, or event registration form with all of their contact information already filled in! This saves them the hassle of filling it out and increasing the chances they would ultimately donate. Or it can be a simple way to periodically allow people to review their contact info and update it if applicable.

The way it works is you create a "special" link in the CiviMail message that includes the checksum token {contact.checksum}. When people click on the special link, it looks them up in the database and prefills any information on the contribution form or profile with any data that exists in their record. The special link lasts for seven days from the time it was sent out.

Checksum for Contribution Pages: To send people to a contribution page use this path where N is the ID of your contribution page:

Drupal: http://www.myorganization.org/civicrm/contribute/transact?reset=1&id=N&{contact.checksum}&cid={contact.contact_id}

Joomla!: http://www.myorganization.org/index.php?option=com_civicrm&task=civicrm/contribute/transact&reset=1&id=N&{contact.checksum}&cid={contact.contact_id}

WordPress: http://www.myorganization.org/?page=CiviCRM&q=civicrm/contribute/transact&reset=1&id=N&{contact.checksum}&cid={contact.contact_id}

Checksum for standard Profiles (edit mode): To send people to a profile use this path where N is the ID of the Profile you want to send them to:

Drupal: http://www.myorganization.org/civicrm/profile/edit?reset=1&gid=N&{contact.checksum}&id={contact.contact_id}

Joomla!: http://www.myorganization.org/index.php?option=com_civicrm&task=civicrm/profile/edit&reset=1&gid=N&{contact.checksum}&id={contact.contact_id}

WordPress: http://www.myorganization.org/?page=CiviCRM&q=civicrm/profile/edit&reset=1&gid=N&{contact.checksum}&id={contact.contact_id}
  • I think combining this answer with a front end form would be a solid way to go. After submitting their member number or email address, instead of being directed to a page with all the information/links, send it to them in an email instead, either the email submitted or the one associated with the member number. You would get all the functionality you're looking for while avoiding the potential for data harvest that Jon G points out.
    – konadave
    Commented Jan 30, 2016 at 0:53

You should be able to do this by creating a profile, and selecting the email address as a search term. This is fairly rudimentary, but works; if you're using Drupal, you can use Views to build a much slicker version of the same.

Note that while this is closer to what you're asking for than what Catorghans is discussing, his approach is fundamentally more secure; otherwise, you're opening an avenue for someone to harvest data from your system.

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.