Nonprofit Association of Oregon, serves as a hub to help other nonprofits improve their operations, strategy, fundraising and technology. In one sense they are a 'meta-nonprofit' or aggregator of nonprofit ideas. Nonprofit Association of Oregon (NAO for short) is membership and event driven. They host and promote dozens of paid events each year to the nonprofit community, host classes, offer training, provide consultants, etc. - with NAO members being offered discounts.
NAO was already using an old CiviCRM version 2.2 and Drupal version 6 install. Korlon LLC was contacted by NAO to helping to fix a schema error during an upgrade. During a company-wide rebranding effort months later, Korlon was hired to handle the website creation as well as implement a new CiviCRM install with version 3.2.
The planning phase was extensive. We focused mainly on interviews with key staff members to understand how they handle their tasks. The data was all-important: how they collect it, edit it, and want to display it. We reviewed several use cases. We talked about how they do things now, how they have done things in the past, and how they would like to do things in the future. In the past, the staff had not been trained how to use CiviCRM, so the data had become messy and difficult.
Our efforts focused on using CiviCRM in a way that made sense with their processes. It wasn't always easy. The staff was highly technical with big expectations. In the end, the staff got most of what they wanted, but also made some compromises. Several decisions were made considering software maintenance as well as budget; we decided we would attempt to keep custom coding to a minimum.
NAO was an exceptional group. They were by far the most technical client we have worked with. They had one staff person who is a network engineer and occasional programmer, capable of making upgrades to Drupal and editing Views. The staff numbered under 20, but the employees at NAO were highly intelligent and had a computer competency far beyond the average office worker. This made things easy in a lot of ways.
- easily trainable to do complex tasks such as batch updates and importing
- clear communicators about their goals
- several staff were trained on creating and editing content, and did a fine job at it
- agreed that WYSIWYG editors just mess up the code, used a workaround (more on this later)
- staff were able to gather important data and provide CSVs when necessary
Design was handled by a 3rd party and handed to us as a Photoshop. The theme was part of a total re-branding effort: logos, colors, the works. Korlon had little to do with the design, but adapted the files into a working Drupal theme.
A trusted hosting vendor, Spiretech, provided VPS hosting at a reasonable rate along with server admin services to setup the site. The client established the relationship directly with Spiretech. When launch day saw a server crash, Spiretech came to the rescue immediately to restart the server and tweak the settings. Spiretech rocks.
We started off with 3.2beta to get the staff used to the look and operation of 3.2, since it was such a change over 3.1. We worked through the beta bugs during our development and then finally went to production with 3.2.3.
Because of the messy data, NAO decided to almost completely start over. They collected only the most recent data on the members and events, number a few hundred rows, and we imported it. There were several custom data fields.
Users and Registration
Frustrated with duplicate data and the mess they had before, NAO decided on a bold move. They wanted to 'lock down' all their membership and event forms, making them accessible only to logged-in Drupal users. An account is mandatory to participate in ANYTHING on the site. Because it is a well established organization with many members already, we imported all the members and then used the Drupal module:User Import to invite them to come check out the new site.
We use the Membership > Roles Sync module to give certain users the ability to edit their own "public profile" which is controlled by the Drupal module:Content Profile.
The primary custom programming revolved around Organization fields on a contribution form. Because NAO's members are largely nonprofits, most of the members are organizations. The 'on behalf of' fields are quite limited, and NAO insisted they needed to collect more data. A custom Drupal module was used to add these fields to the membership sign up pages along with individual fields in CiviCRM profiles.
Other custom programming was done to restrict all the forms as well as expose the auto-complete Organization box for the membership forms. This way users can search the database for their Organization, and enter it in as their employer so duplicates are less likely.
CiviCRM's strong relationship features came in handy on this project. Each member Organization has several employees, all of whom inherit the membership of their organization. There are also special voting individuals with each organization, so this is a separate type of relationship. Smart Groups in CiviCRM were used to keep track of special relationships.
NAO utilizes almost a dozen distinct event types, and gains sponsorship for each kind. Registration is done online, with discounts for members. Events are displayed in a calendar online, color-coded by type. Event payment and registration, as well as reporting is all done through CiviCRM by their events department.
NAO has two distinct types of membership, with several classes in each type. CiviCRM interprets each of these as a distinct membership type, which was difficult at first to wrap our heads around. In the future, we might be interested to develop membership 'sub-types' for this purpose, but that was out of our budget at the time.
Various modules were installed and configured to provide the required CMS functionality: CCK, Views, Content Profile, Calendar, ImageAPI, ImageCache, Advanced User Management, Menu Block, Menu Breadcrumb, Pathauto, Thickbox, User Import, Ubercart, LoginToboggan.
- Event Calendar showing CiviCRM events (pulled from the separate CiviCRM database) with customized Drupal Views themes and CSS to color different boxes different colors based on event type.
- Organization data fields available on Nonprofit membership signup form (see image #1)
- Membership fields show/hide based on Affiliate membership type signup form
- Image and File content types (rather than clumsy WYSIWYGs or file managers). This way staff can upload images, and paste different versions of that image in multiple places. This was achieved with CCK and Image Cache and some custom .tpl files in the Theme
- Directory of members of certain types, who have the ability to upload their company information and have it displayed publically.
- Homepage carousel jQuery displaying images and captions
- Roundy flyout primary navigation menus
Because of the tight timeline, tight budget and high expectations, regular meetings (weekly at least, sometimes a few times per week) with the stakeholders was vital. Luckily we were in the same town. We had to make some tough decisions: what do we need, what would we like, and what we can live without?
Meetings were scheduled to show the staff "what you will be getting" and solicit feedback. In several cases, feedback from staff received after the planning phase, but before launch, was vital. In one case, several fields were identified that needed to be added to a membership form. In another case, important questions about workflow were asked, and the process was adjusted. Meetings during the development were vital to correcting misconceptions or problems before the website was finalized.
Nonprofit Association of Oregon opted for Authorize.net as their payment processor, as they did not need recurring payments and they were already working with Authorize.
Budget and Timeline
Timeline was tight. Start to finish, the project lasted less than two months.
Budget (not including the design) was around $9000 USD.
After project completion, the staff was trained in person and also using a series of specific screenshot/narration web videos. Korlon setup up several in-person training sessions for the staff before and after launch.
NAO relies on Korlon for CiviCRM updates. The staff is capable of maintaining their backups and upgrading Drupal modules. Because of budgetary concerns, updates to CiviCRM are held back until a mature CiviCRM development cycle has been reached. We did not upgrade to 3.3 until 3.4 was nearly out. Testing prior to upgrade and after was a major effort.
As Technology Manager for NAO and a life-long SysAdmin, I think the most important aspect that made our Civi implementation a success (besides Stuart at Korlon LLC's exceptional skill) was user training. With our old website, which also ran Drupal 6 with CiviCRM 2.x, there was a severe lack of user training. Only IT staff were thoroughly trained on the nuts and bolts of the system, such as creating reports, importing, maintenance tasks/data cleanup/de-duping, etc. The website was also heavily customized, which made upgrades a total nightmare with hordes of errors and led to rollbacks and eventual neglect of the system. Turn-over from the original IT staff who set up the system pretty much put the nail in its coffin. That's when we decided to start over, fresh.
With our new website, we put an emphasis on user training which was provided directly by the expert, Stuart. It might have slightly increased cost, but the end result were users being trained by a real Civi expert with years of experience, instead of IT Staff who had only worked with the product for a few months.
I think another key to our success was setting expectations. No system can do everything you want, out of the box, especially when you want it to do everything, including order pizza and bring peace to the middle east! Often times, users don't understand that and think it's trivial to make a website do anything you want, whenever you want, and for next to zero cost. Korlon did a great job at keeping our staff grounded to reality and explained to us what Civi is MEANT to do and what it's NOT meant to do.
One last important piece from my perspective, was the planning process. Our staff had weekly, 1-2 hour web meetings for nearly 3 months – sometimes twice a week. It was a serious project that demanded serious attention and a real commitment from the staff involved. It was an accelerated design and launch, but given the fact that we did have some previous Civi/Drupal experience and we did our homework, figured out our goals and was fortunate enough to get in touch with Korlon, things turned out OK... it all came together!