Denison, Texas, United States


Visit website

Vertical Tabs


CMS Expertise

Drupal, WordPress, Joomla!

Services Provided

Implementation, Ongoing support, Training, Custom code and extensions, Data migration and imports

About us

The quality of your data can determine your success. My name is Allen Shaw, and at Joinery, I lead organizations to be effective in their mission through efficient management of their contact data. Experience, skill, and a singular focus on data management allow Joinery to provide solutions that leverage your data into tangible results: funds raised, lives changed, problems solved. I focus on partnering with my clients by providing clear and timely communication, honest expertise, and high-quality deliverables. Clients benefit from my seven years of CRM management in the non-profit sector and over 15 years experience developing web-based software. I'm a regular participant in code development sprints with the CiviCRM core team, contributor of features and bug-fixes to CiviCRM core, and a member of the CiviCRM Extensions Working Group.
CiviCRM Services

Our CiviCRM services

Data migrations from any CRM or data source; Custom integration with third-party APIs; Emergency fixes for poorly handled projects; Reporting and data visualization; Custom development on new or existing CiviCRM extensions and CiviCRM core.

Case Studies

Making extensions easier to find and publish

The CiviCRM extension system has come a long way since its inclusion in version 3.3. There are currently over 250 extensions published in the Extensions Directory at, and scores more in...
[display_name] photoby Allen Shaw of Joinery
on December 23, 2016 - 10:56

More control for "current employer" fields in public forms

CiviCRM provides a "current employer" field for all individual contacts, and that field does some cool stuff. Namely, when you type an organization name into this field and save the record...
[display_name] photoby Allen Shaw of Joinery
on April 4, 2016 - 12:34

Recording multiple payments on one contribution, and dividing one payment among multiple contributions

A member sends several separate payments to cover outstanding dues on a single purchase, like an expensive membership or a table at an event. How are you going to record this? A conference...
[display_name] photoby Allen Shaw of Joinery
on March 12, 2012 - 07:37

New Module for Drupal: CiviCRM Private Report

A couple of weeks back I wrote here some thoughts about letting users manage and modify their own private collection of reports without actually having site-wide "administer reports"...
[display_name] photoby Allen Shaw of Joinery
on January 9, 2012 - 10:02

Allowing users to modify reports without going crazy

A client of mine at NS Web Solutions is looking to solve a problem involving the way their users need to handle reports.  I think this might be common enough to be relevant for others, so here's a...
[display_name] photoby Allen Shaw of Joinery
on December 19, 2011 - 11:07

Publishing Activities as an iCalendar Feed

At NS Web Solutions, we recently got a chance to work on a cool project for one of Pogstone's clients. Thanks to this client's generosity, we expect soon to release a Drupal module which...
[display_name] photoby Allen Shaw of Joinery
on September 13, 2011 - 11:56

Building a detailed event management system (and some other cool stuff) with CiviCRM

Note: You can see videos of these features in action on NS Web Solutions' case study page for this project. Update: Some of the code for these features is available on GitHub. See my comment...
[display_name] photoby Allen Shaw of Joinery
on April 28, 2011 - 21:37

Adding "sort by columns" to Reports

This has come up a couple of times before. According to my chat with Lobo today, not much is happening on this front. Since our client at Two Mice and a Strawberry has a need for this, we're...
[display_name] photoby Allen Shaw of Joinery
on October 25, 2010 - 14:04

Adding Privacy and Comments to CiviCRM Notes

At Two Mice and a Strawberry, a client has asked for some customization of the Notes features for Contacts. It happens that these features may also be useful for other objects that use Notes, but at...
[display_name] photoby Allen Shaw of Joinery
on September 6, 2010 - 09:17

Allowing non-admins to find and merge duplicates

As of now (version 3.1.5), CiviCRM limits finding and merging of duplicate records to users with the "Administer CiviCRM" permission. A recent thread on the forums points out that some organizations...
[display_name] photoby Allen Shaw of Joinery
on June 2, 2010 - 15:01

Using hooks to change "Individual Prefix" to an auto-complete text input

Originally posted at I recently had to modify CiviCRM to support a specific use case for a client. In this project I needed to allow the user to enter anything in the...
[display_name] photoby Allen Shaw of Joinery
on April 20, 2010 - 12:02