Accessibility Tools

Skip to main content

Modernizing NSN’s Member Directory/Search

Feature upgrade using CiviCRM’s SearchKit and Form Builder

The National Storytelling Network is a membership organization whose mission is to advance all forms of storytelling through promotion, advocacy, and education. In addition to membership offerings tailored to their constituents’ specific areas of interest, NSN also publishes a directory of members who want to publicize their storytelling practices. The “Hire a Teller” website feature allows visitors to search the CiviCRM member database using various criteria: name, location, type of storytelling, age range of target audience, etc.

The Challenge

Image for the Storyteller Advanced Search

NSN needed to modernize their outdated member directory system. Their existing solution, built in 2017, relied on a basic CiviCRM Profile embedded in WordPress. This created two major issues:

  • Many profile fields changed over the years, so data was not in a consistent format
  • Search results were incomplete due to the inconsistent use of fields

Burdensome Process for Staff to Maintain

As the directory evolved, it became difficult for NSN to keep both the search form and the update form current and in sync with each other. Eventually, they just took the update form offline and directed members to contact NSN staff when they needed to update their information; a staffer would then make the changes to the individual’s contact record from the CiviCRM back-end admin interface. These manual updates introduced friction to the process. As part of an upgrade to the “Hire a Teller” feature, NSN wanted members to be able to update their own information, including uploading a photo to be displayed in the directory.

Incomplete Search Results

Results for the original directory search could be inconsistent since applying search filters only returned records where data for those fields had been provided by the member. Many fields were not required when members filled out their profile details, so members who opted not to indicate whether they are bi- or multi-lingual, or whether they offer workshops or are willing to travel, would never show up in searches using those criteria.

Implementation using SearchKit

Image for the Storyteller Directory

We started by creating a new custom query in SearchKit, selecting Contacts whose Membership Type entitled them to a directory listing and whose status was one of New, Current or Grace. We also selected Contact Addresses and Contact Websites data in our query because NSN wanted these published and searchable from the front-end. To display the member’s profile photo in the directory, the URL had to be fetched, post-query, from the member’s CiviCRM Contact Record.

Creating a Display Table for the Results

Image of the Display Table for the Results

With the SearchKit query crafted and returning the proper data, the next step was to add a Display where the appearance of the results could be modified to the client’s specification. The “Settings” section of the Display provides options for the initial sort, applying odd/even row shading, borders, and pagination, and whether to allow any actions to be taken on the results (for example, downloading as a CSV file).

In the case of NSN’s directory, we wanted more concise column headings and the ability to sort by Name, City, State, and Postal Code columns. This was accomplished by setting options from within the “Columns” section of the Display.

With the Display configured, the last step was to expose the directory data on the front-end and provide filtering options for users.

Using Form Builder to create the UI

Image of Form Builder to create the UI

CiviCRM’s Form Builder is the mechanism used to create forms associated with a SearchKit Display. The Form Settings tab provides options for setting permissions and making the form accessible on the front-end. The tab for the Display (pictured in the screenshot) includes a canvas for the filter form layout as well as a placeholder for the Display itself. Fields are added to the form by searching or scrolling the list of available fields and dragging and dropping them onto the canvas.

Old School CiviCRM Profile for Directory Updates

We stuck with the tried-and-true CiviCRM Profile for directory updates. NSN members were already familiar with the interface; it was just a matter of simplifying the form and providing them with a link to make the updates.

Results

Image of the directory system

The new directory system has improved both the user experience and administrative efficiency for NSN. Members can now easily update their own profiles and photos while those browsing or searching the directory enjoy a modern and professional presentation with more comprehensive search capabilities.

Summary

Provided By: Tadpole Collective

Our founding members met at the WordPress NYC MeetUp in 2011 and a year later came together to form Tadpole Collective. We recognize the value of open-source software and the communities that form around it; we owe our existence and livelihoods to WordPress and are deeply committed to the CiviCRM for WordPress project.

We’ve been working with CiviCRM since its earliest integration with WordPress, contributing our efforts to multiple CiviCRM teams on enhancements, extensions, bug fixes and upgrades — and taking the lead on testing all new CiviCRM release candidates to ensure ongoing compatibility with WordPress. While there are many web shops that are competent with CiviCRM for WordPress, we work exclusively with WordPress, the internet’s most popular CMS. Tadpole members also organize CiviDay activities in New York City to provide a forum for local CiviCRM users to come together for educational presentations and collaborative work sessions.