Tag Archives: Limesurvey

Nonprofit CRM Overview

NonProfitCRMIn designing our non-profit CRM, we have been looking at all of the functions that we’d like to track.  At a minimum, we think each of the entities above will use one database table. In practice each entity will have an associated “interaction” table and “look-up” tables that feed picklists of options.

A little background. Our organization makes grants to schools and community groups. Many of these grants are funded through commercial sponsors, or through philanthropic individuals or organizations. Thus we have both Grant Prospecting and Grant Application Management functions.

Grant Prospecting — This is us prospecting and managing the workflow involved in applying for a grant. Recently when it gets  down to the application process itself  we have we have worked in Slack.

Grant Application Management — As we receive grant applications we have to process them and eventually evaluate them. We currently use LimeSurvey for our online grant application.

Sponsor Prospecting — If we don’t have an individual or foundation donor, we may fund a program through a sponsor; a company that wants to promote their community engagement or charitable contributions.

Contact Management — The contact table part of our design includes all the usual information about contacting a person In our database design, this may actually turn out to be  a hidden many to many table. One of the objectives that I want to address is the ability to look at a single person’s contact information and determine what our relationship(s) are with that person. A person could be a donor, a member, a volunteer, a member of our board, member of our advisory board. and our lawyer. This is really what CRM is all about, as well as the ability to track the relationship steps with the person at any stage of the relationship.

Membership (Donor) Management. We used to do this in Little Green Light. We’re not sure our business model going forward lends itself to membership.. but if it does, this is where we’d like to track members.

Media / Outreach Lists — We have 3782 media contacts to which we send press releases etc.

Admin — Could we provide forms for our usual HR functions like time sheets, vacation accrual, expense reimbursement, travel schedules, etc?

Note that this design exercise is independent of any particular kind of software. We have bits of data scattered in spreadsheets, word-processing files, online applications such as LimeSurvey and Little Green Light, FileMaker databases and of course eMail.

Update: I’ve added two additional tables; one for “contacts” (which will feed its contact and address data to the other tables), and  “projects” table which contains data about each project.




Odds and Sods

Random Tips

  • Panic in the ranks! This is not the first thing you want your users to see in the morning as they attempt to log into to complete a grant application:
    The table "{{settings_global}}" for active record 
    class "SettingGlobal" cannot be found in the database."

    After some poking around it turns out we were out of allocated disk space on the Linode.  df -m showed 100%. I think this was related to a backup and restore that I had done a day earlier; which preserved the old image as it copied a new version  to the same allocated disk space. The actual error was returned by LimeSurvey, which was reacting to a system 8 error generated by mySQL.

  • Trying to see the analytics for a bit.ly link?  Just append a plus sign ‘+’ to the link. This will show the statistics for the link instead of what the link points to.

Stuff I’d Like to Try Out

Two “glue” programs that process something in one program, based on a trigger that is set in another program.

Two forms program that make web forms.

Links of Interest

50 tools for project management. (from Zapier)

LimeSurvey: Reset User Names and Passwords

We use LimeSurvey for receiving grant applications. These applications sometimes take a while to fill out, and the applicants have the opportunity to save an existing application with a name and password for re-use later.

Once they save, the LimeSurvey server will send them an eMail with their name and password, and a link to get back into the existing application to continue working.

Inevitably, people forget their name and password, or misplace the email.

Incredibly, even after all these years, LimeSurvey doesn’t have a one-click solution for fixing the problem at the administrator level  or  a “forgot your password?” link on the login screen.

So, this becomes a tech support issue, and significant time sink.  The only solution that I know of is for the administrator to go into the database  back-end which stores all of the LimeSurvey tables, and reset the user’s password to a known password.  Here is how I do this.

  1. Once contacted by a user in distress, I search the listings to find their application, and view the contents.  If there isn’t any significant work done there, (i.e. they have just started the application), I’ll delete it and have them create a new one.  Otherwise,  I will note the eMail password and the user name.
  2. I then SSH into the mySQL back-end (or whatever database you are using).
  3.  mysql -pmypassword
  4. use limesurvey;
  5. select scid, identifier, access_code, email from lime_saved_control;
    This select statement displays the list of all the LimeSurvey users. Scanning this list, you’ll find your user’s email address or name.  You can then isolate that particular record by repeating the query with a where clause.
  6. select scid, identifier, access_code, email from lime_saved_control where scid=’81’
    The result record will look something like the following:
  7. Note in the diagram above the field names:
    identifier = the name under which the user saved their application
    access_code = a hash value of the password that they used.
    These two items are what the user needs to be able to go into their existing grant application.
  8. You could run the hash through a reverse hash calculator to recover their existing password. However, I prefer simply to  put in a new password:
    update lime_saved_control set access_code = MD5(‘12345′) where scid=’81’;
  9. At this point I can send the user an eMail  message showing what name the application was saved under and the new password of 12345.

Naturally this solution is fraught with danger…. so I’d recommend that you rehearse this procedure on your installation.