Daily content to rocket your growth plan
I’ve got plenty of ways we can work together, but if you’re looking for a zero-cost source of inspiration, insights, and stories from the trenches, you might enjoy these posts from my daily mailing list.
I LOVE the daily thoughts that result from subscribing to you. They are forward-looking, optimistic in every way.
— Adrienne R. Smith, New Mexico Caregivers Coalition
If you like what you see here, sign up below to join the list. Yes, it’s really daily. Yes, people really stay subscribed. And yes, I do read (and usually reply to) all responses. See you in the in-box!
Looking for more free resources?
Mastering CiviCRM Crash Course
A free 10-day email course to teach you how to leverage CiviCRM for your organization’s goals.CiviCRM Upgrade Messages Previewer
Before you start a CiviCRM upgrade, check here to preview the kind of messages you can expect to see, based on your current and target CiviCRM versions.Tools I use
A collection of tools and services I love and recommend.
Daily Emails
You can't answer seven
You've got an idea that you might want to try something.
Maybe it's a new hire. Maybe it's a new use for your CRM. Maybe it's a change to your membership policies. Or a new alumni program.
Doesn't matter.
You have to decide whether you like this idea or not. Rate it on a scale of 1 to 10.
Here's the catch:
You can't give it a seven.
Why not?
Because of seven is cheating. It's safe. It says, “Yeah I kind of like it, but I'm not sure I want to do it.”
Get out of that middle ground. Call it a six, or call it an eight.
Six, well that's pretty close to a five, so it's not much better than a coin flip.
Eight, that's something you can take action on.
Here's the thing:
Decisions are hard. But they're valuable. Wasting time in the Undecided Zone is not going to get you what you want.
All the best,
A.
P.S. Credit where due: this is not my idea. I heard it from Tim Ferriss, who got it from Kyle Maynard, who got it from "a well-known CEO." See Ferriss talking about it here.
P.S.S. I know yesterday I promised to tell you yet another example of events that don’t fit in CiviEvents. But, yeah, it’s just one more example of the same thing. I hope you enjoy the above notion a little more.
Events that don’t fit CiviCRM
I had two clients ask me last week about how to set up CiviCRM Events (CiviEvent) for their events, and both times the answer was:
Don't use CiviEvent for that.
Here's the first one:
We have a regular schedule of drop-in events like karaoke night, trivia night, and open mic. We want to display these in a calendar format so they're easy for people to find. We don't need people to register; we just want them to know the event is there so they can come and go as they please.
So why is this not a good fit for CiviEvent?
Because you're not collecting any data about the participants.:
They don't need to register with their name in advance.
You won't track attendance as to who came and who didn't.
In short, this is similar to anonymous surveys: there's really nothing for a CRM to track here.
Instead, you could just list these on a page on your website. If you want a calendar format, your CMS almost certainly supports any number of plugins or modules to handle that kind of display.
Here's the thing:
If you're not tracking anything about a specific named human being, there's nothing for your CRM to do here.
Count yourself lucky that you have a simple situation, and use your extra time to work on your guitar licks for open mic.
Break a leg!
All the best,
A.
P.S. More tomorrow on that second don’t-use-CiviEvents client situation!
Anonymous surveys with CiviCRM?
One more type of intake form you might be thinking about: anonymous surveys.
Say you've got a list of 20 questions, you’d like to collect responses from your constituents, and you have good reasons not to identify the people who answer.
(Usually it's because the questions are of a sensitive nature, and you believe you'll get more honest answers if respondents can remain anonymous.)
If you’re looking for the best CRM tool to build such a form, think again.
Anonymous surveys are in the category of things that don't fit well in your CRM.
Think about it. You’ve decided to collect no personally identifying information. In a contact relationship management system, which contact are you going to attach these answers to?
None, of course.
You'll be better off using one of the CMS-driven form builders. You might even prefer to use an external service like Google Forms or SurveyMonkey.
Any of those solutions will let you create a set of questions, configure the possible answers — from multiple choice to long texts, to dates, to lots more — and send the link for that simple and beautiful form to your pool of anonymous respondents (say by email — which, by the way, is a great use of your CRM).
Then you can export that data to a spreadsheet and analyze it however you like.
That's all you really need to do here. No need for a CRM at all.
Here's the thing:
When you have a really nice hammer, it's tempting to see everything as a nail.
CiviCRM is a fantastic hammer. But not everything is a nail.
All the best,
A.
Intake forms for your staff
If your staff have tasks that involve predictable and repetitive data entry, you can save them a lot of time by creating custom forms in CiviCRM to handle the data entry.
You've basically got two options to do this. Just like I explained yesterday about intake forms for your constituents, the main difference between these two is in their flexibility and complexity:
CiviCRM Profiles: Relatively easy to configure, and relatively limited in the types of data they can handle.
CiviCRM FormBuilder: More flexible in what you can do with them, with a matching increase in complexity when creating them.
(You could in theory also use one of the CMS-based form builders like Webform or Caldera Forms, but since we're taking about staff users here, I don't see much advantage in going that route.)
My preference:
Once again, I'll usually suggest going with FormBuilder here.
The learning curve is a little steeper, but the extra features will, I believe, make it well with the effort.
All the best,
A.
Intake forms for your constituents
When you're collecting data from your constituents directly, you need to be sure of two things:
1. The data needs to land in the right place in your CRM.
This means you need to know what the right place is, and that probably means you'll have (or will need to create) the relevant custom data fields and other configuration to store the data.
Before you start creating the forms for your users, it's a good idea to manually enter a few sample responses through the back end; and then run a few reports or searches to examine that data.
This way you can be sure of where the data is supposed to be, and that you'll be able to use it effectively once it's entered.
2. The form should be as easy to use as possible
Now you need to think about how your constituents will actually provide that data.
What are you going to use to build the form that they'll be using?
You've got a few options:
CiviCRM profiles:
This method is the simplest to implement, and it works well for simple updates to information about a single contact.
But if you intend to store the data in multiple contact records, or in activities or other entities, profiles are probably not going to be able to handle that.
CiviCRM FormBuilder:
This relatively new feature in CiviCRM is growing rapidly and can already handle most anything you want to do in your data collection form, including the collection of data about multiple contacts, activities, and other entities.
It's a little more complex to configure than a profile, but it's a lot more flexible.
CMS-based form builders:
Under Drupal and WordPress, you may simply prefer to work with one of the popular form builders in those platforms.
In Drupal, Webform is the tool for building custom intake forms. With its CiviCRM integration, you can do all of the above.
As a bonus, it also supports taking payment via the form. Right now it's the only option in this list that will do that.
In WordPress, the most popular form builder is Gravity Forms. But it has no integration with CiviCRM.
Instead, you should look into Caldera Forms. This WordPress plugin, with its CiviCRM integration, supports collecting data on a fairly diverse set of entity types (contacts, activities, etc), and its forms also tend to “look pretty" with your WordPress theme.
My preference:
Where possible, I recommend starting with CiviCRM’s FormBuilder. The learning curve is a little steeper than with profiles, but once you’re past that the flexibility of this tool is pretty impressive.
There's not much that the other solutions can do that FormBuilder can't.
And once you get the hang of it, you might be surprised by what it will allow you to do.
All the best,
A.
Pick your poison: Intake forms
For contributions, event registrations, and membership sign ups, CiviCRM has dedicated forms that pretty much have you covered.
But what if you want to collect some other kind of data?
Questionnaires or assessment tools for your service recipients
Streamlined data entry for your staff
Anonymous surveys
etc.
There is, as they say, more than one way to skin a cat.
So depending on your situation and your needs, you could do all this a few different ways:
CiviCRM profiles
CiviCRM FormBuilder
Caldera Forms (WordPress)
Gravity Forms or Ninja Forms (WordPress)
Webform (Drupal)
None of them is perfect for everything, but they can all be great for one thing or another. Sometimes you have to pick your poison.
In my next few emails I'll cover each of these and look at pros and cons.
With a little care, you can select the one that's best for you.
All the best,
A.
Cleaning the corners
In my office at home I have a habit of leaving things in the corner that I expect to deal with “later.”
You know, things I ought to put away in another room, but can't be bothered just now. Amazon purchases I keep meaning to return. Stuff that doesn't really have a place yet, and I'm not sure if I'll want to keep it or throw it away.
Now and then, when I'm not beset by urgent tasks, I'll make a little time to clean the corner.
It's a simple task. I just go through things and make some quick decisions. It's even refreshing in a way, and when I'm done, I have a nice clean office again.
Here's the thing:
Most systems have “corners.” Little places where we leave things to be dealt with later.
In CiviCRM that could be things like:
Checking your system status messages for anything that might need attention.
Reviewing your extensions and deciding which if any really should be upgraded.
Scanning for duplicates and merging a few of them.
Sure, you can schedule time for things like this. And frankly, you shouldn't let those things go too long without attention.
But sometimes, when you have a minute, it's just nice to clean the corners.
All the best,
A.
Protecting open-source software in the EU
If you have an interest in the success of open-source software — whether you live in the EU or not — you might be interested in this open letter to the legislators of the European Union from the makers of WordPress, Drupal, Joomla, and other popular open-source tools.
They're concerned that a newly proposed EU law could drastically hamper the work of open-source software developers, and the future of the software itself.
Maybe that’s not your thing, and that’s fine of course.
But perhaps it is nice to know that individuals and organizations — thousands of people around the world — are working together to maintain and improve the tools we use every day.
And, that those folks are also putting in the extra effort to navigate political and legal decisions that might limit their ability keep doing that great work.
Here’s a wish that they, along with you and me, can continue working to make the world a better place for people they care about.
All the best,
A.
There’s an extension for that
It seems like it happens at least once a week.
A client asks me how to do something that we both know is not easy in CiviCRM, or maybe not even possible out-of-the-box.
I imagine that's something that a lot of people would use, if it existed.
I check the extensions directory, and there it is. Somebody already built it, and we just have to install it.
Today it was:
Is there a way to automatically soft credit one spouse for the other spouse’s contributions?
Okay, that's actually a good idea. It seems like a lot of people would use that. That should probably exist.
Yeah, it does: Automatic Soft Credit (or check this link for a better description).
Sure, it's not always that easy.
If it's really unique to this organization's policies, and it's not the kind of thing that a lot of people would need, then the chances are slimmer.
But it's always worth checking.
All the best,
A.
Custom development for CiviCRM: Worth it?
What should you do when you want something that's not possible in CiviCRM out-of-the-box, and there's no available extension that would do it for you?
Would creating an extension (or even modifying CiviCRM itself) be worth the investment?
It’s a trick question, I guess. Because it’s not really about CiviCRM.
“Is it worth it?” is one of the first questions you should ask any time you’re considering custom software of any kind.
But the real question is:
How would you even know if it's worth it?
How would you measure that?
If you know how you would measure it, you probably already have a sense of whether it would be worth it or not.
But if you don't know how to measure that, how could it possibly ever be worth it?
Here's the thing:
If you care about value, you have to have a way to measure it.
All the best,
A.
Theme fixes
What if you're unhappy with the way CiviCRM forms look on the front-end of your website?
First of all, remember that you don't have to make everything look “just so.” There's no rule requiring it.
But say you have a sound business case for investing a little effort and changing the look of those front end CiviCRM forms.
Here are two ways to make that easier for your developer — or whoever is going to make these changes:
Custom template:
Sometimes a WordPress theme will do all kinds of unexpected things in the default template that goof up CiviCRM's content.
Usually, the symptoms are that CiviCRM's content doesn't display at all, or it displays in the wrong place on the page.
A common solution is to create a template that avoids all that fancy logic and just shows the CiviCRM stuff where it's supposed to be.
Remove conflicting styles:
By default, CiviCRM adds its own styles to the content it generates, but that can conflict with the styles of your site theme. As long as you have both styles fighting each other, it can be hard to formulate the style rules that will give you the formatting you want.
Under WordPress, you can do that pretty easily, using a setting in the WordPress plugin CiviCRM Admin Tools.
Under Drupal, there's no module that does this with a simple check box setting like that. But your Drupal theme developer should easily be able to prevent the stylesheet from being loaded, by using Drupal hooks in the theme.
All the best,
A.
Theme problems
Do CiviCRM forms look weird on your website?
Whether WordPress or Drupal, it's a challenge for some sites:
I've worked hard to make the whole site look just right, but anything that CiviCRM produces looks like it came from another planet.
Contribution pages, event registration forms, anything. Why can't I just have it look beautiful like the rest of my site?
Most CiviCRM sites don't have this kind of problem. Most themes work just fine with CiviCRM, and many organizations are so happy to have the functionality that they don't sweat the details when it comes to the visual design.
But if you're investing a lot of time and money into a beautiful comprehensive design, then "it works fine for most people" is no great comfort.
So what to do?
In my next email I'll offer a few tips and tricks that can make it easier.
But in more general terms: sometimes it's just hard.
CiviCRM is intended to run on wide variety of sites and CMSs. Its forms and pages have to look decent on any site, but it's almost impossible for them to look great, right out of the box, on every site.
There's just too much variety:
Your custom site design;
Your particular CMS theme;
Plus all of the modules and plugins you may be running.
If you're one of the many for whom this isn't causing problems, that's wonderful.
But if you've already made a big investment in your site design and have a business case for making every bit of content look just so, it's probably worth budgeting a little extra to style the CiviCRM content to match.
Just how much extra effort will depend on your design requirements.
All the best,
A.
CiviCRM contact dashboard extension
How do you keep your organization’s members informed on the status of their membership, outstanding payments, event history, and the like?
The CiviCRM Contact Dashboard is a handy way to do that.
The only problem I've seen is that it's so darn long. Members get a little lost scrolling through all that information.
A little while ago a client inspired me to clean it up a little, so we created a tabbed interface that looks like this:
It also lets you hide, re-order, or re-label the tabs, and — this is pretty useful — add additional sections based on Profiles.
That's available as an extension in the Extensions Directory; give it a try if you like: CiviCRM Contact Dashboard Tabs.
And of course, there's plenty of other cool stuff in the Extensions Directory.
Give that a look now and then too. You'll probably find something you like.
All the best,
A.
Smart habits for CiviCRM mastery
I've got a few clients who are rolling out CiviCRM for the first time.
The ones who are having the best time of it are doing a few smart things:
They've gotten very familiar with the online documentation.
They regularly check the Extensions Directory when they need a feature they don't have.
When they have a question, they ask somebody with experience (that's usually me, but not always).
Starting out with a complex system like CiviCRM is a pretty big task. It's a steep learning curve.
But a few good habits can not only make it possible, but put you on the path to long-term success.
All the best,
A.
Helping people you like get what they want
I've been having one of the funnest weeks of my life helping a small WordPress shop get their heads around CiviCRM.
They've been in the WordPress business for a long time, but this is their first experience implementing CiviCRM for one of their clients.
From where I stand, it looks like they were completely stuck. But with a few phone calls and screen sharing sessions, they're now very close to making their tight launch deadline.
Why am I so excited about it?
I'm vain. They ask me a bunch of questions that I know the answers to, and then they tell me how smart I am.
I like instant gratification. With a little bit of guidance, I can watch them eat up this project like movie theater popcorn.
I'm stingy. Yes I seem to be giving them a lot of valuable information, but I still get to keep that information myself as well.
I'm greedy. Every time they ask me a question that I don't immediately know the answer to, I have a reason to go figure it out. Then I've got more useful information than I had before.
Here's the thing:
I feel like I could do this forever. Helping people with stuff they need, and getting a lot for myself out of the experience.
That's often how it works when you're helping people you care about get what they want.
If you're in the business of helping people — and I think you are — I wish for you lots of similar experiences.
All the best,
A.
Heed the warnings
You’ve probably noticed that when you log into CiviCRM you'll sometimes get messages like this:
Or you'll see something like this in the footer of any CiviCRM back-end page:
Who's monitoring those messages?
(Hint: if you don't know who it is, it's probably you.)
Do these messages make you or your users freak out? Then you might want to know what's worth freaking out about and what isn't.
Are you ignoring error-level messages — the red ones? You probably shouldn't do that.
What does all this mean?
First of all, you’ll want to look at the full set of System Status messages, which you can do by clicking on the “View details and manage alerts” link in the System Status pop-up, or on the “System Status” link in the page footer.
Some of these messages will seem self-explanatory. Others will be more mysterious.
If you're not sure what to make of one or more of them, you've got some options:
Copy and paste the message text into Google. You'll probably find somebody online explaining what it is.
Ask your CiviCRM expert to look into it. Maybe you can ignore it, but maybe it needs attention.
Feel free to email me anytime, and I'll try and help you figure it out.
Here's the thing:
CiviCRM is trying to tell you something.
It doesn't know your risk tolerance. It's just trying to keep you informed.
It's up to you to make sure your system is well maintained.
Seriously, email me if you're not sure. I'll help you sort it out.
All the best,
A.
I wonder what this button does: CiviCRM permissions
One more thing that gives people a hard time with CiviCRM permissions:
The meaning of each one is not always plain to see.
What's the difference between “access CiviCRM backend and API” and “access AJAX API”?
What about “administer CiviCRM” vs. “all CiviCRM permissions and ACLs”?
CiviCRM documentation used to provide some additional information on these permissions. That documentation is a little outdated, though.
The current documentation doesn't contain all that detail, because the permissions interface itself now contains descriptions for each one. And that helps a little.
But still, it's not always obvious.
When you’re not sure, and you don’t have someone handy to ask, the simplest solution is this:
Change one thing at a time, and test.
Document your changes. This is an extra 5 minutes of your time, but it will save your sanity two months from now.
Here's the thing:
Some parts of CiviCRM are more complex than others. Just like anything else, it can feel daunting the first time, or the first 10 times.
But the feeling of mastering your systems, and owning the outcome, is almost always worth the effort.
All the best,
A.
CiviCRM permissions vs ACLs
Here's another reason permissions are difficult in CiviCRM:
It's hard at first to understand the difference between permissions and ACLs:
The simplest explanation I've found is this:
Permissions allow or deny access to certain functionality.
ACLS allow or deny access to certain groups of data.
Want to limit which users can register for online events or access the features for managing contributions? Adjust the permissions.
Want to limit which users can view a specific custom data group or edit contacts who are in a specific contact group? Adjust the ACLs.
The documentation for permissions and ACLs may help.
But if you get stuck, you can always shoot me an email and I'll be glad to help.
All the best,
A.
How to test permissions and ACLS in CiviCRM
Permission changes in CiviCRM can make for some surprising results.
I don't blame the software. It's meant to be very flexible, which of course means it can be complex.
That’s why I recommend testing carefully any time you make a permissions change.
So how do you do that?
The simple answer is: log in as a regular user — not with your usual admin account, but as a user who has the role that you need to test — and verify that it works as you expect it to.
This process will vary, depending on your CMS:
Drupal: Install and use the Masquerade module. Once you've logged in as an administrator, this module provides an easy way to temporarily switch to any other user account, without knowing their password.
WordPress: Install and use the User Switching plug-in. It solves exactly the same problem as Drupal’s masquerade module.
Joomla: Sorry, there's no such extension for Joomla. The best solution is usually to create a new user account, give it the appropriate user access group, and then login as that user.
(As a general security practice, I don't recommend asking any of your users for their password. There's just too much risk of it being disclosed accidentally.)
By the way, this is also a great way to test anytime one of your users reports some mysterious behavior. Masquerade as that user, and observe it for yourself. This save will save you a whole lot of guesswork.
All the best,
A.
What’s so hard about CiviCRM permissions?
I got an email yesterday from someone asking for help because, in their words, "CiviCRM permissions are kicking our butt."
It's a common sentiment.
So what's so hard about CiviCRM permissions? And how could you make it easier?
Here's one good reason:
Permissions are easy to change but hard to keep track of.
You can very easily add or remove permissions for any of your user roles. And you can easily add or remove roles. You can even give multiple roles to some or all of your users.
It's easy.
And it gets complex very quickly. If you're not careful, it gets messy.
This just means you have to be more careful. For example:
Resist the temptation to create a new user role, until you can articulate clearly who that role is for and why they need it.
Write that explanation down somewhere, so you can refer back to it. Because it will be hard to remember when things get complicated.
Avoid changing the permissions on a role just for the sake of one user, until you've carefully thought through the implications for everyone who has that role. Is this actually a change that everyone needs? Or does it represent the need for a completely new role?
Test. Add or remove one permission at a time, and then test to verify that it has the expected effect.
Document changes. Keep a running log somewhere (a Google doc is fine), noting the changes you make, the date you make them, and the rationale. It's an extra 5 minutes of work that might just save your sanity two months from now.
CiviCRM’s permissioning features are awesome, and allow you to build a customized experience for a wide range of users.
With a little extra care, you can make them work for you, instead of against you.
All the best,
A.