Dear CiviCRM community!

I have a question. Our NGO need a report / list of all contacts for sending post letters. We now have some contacts that are married and they only want to get the letter once to one address. Since they contribute separately, we can not define them as a household and we created a relationship between them with the relationship function inside the contacts.

What would be the best practice to get these two people now in one list row, with a specific postal greeting and address between normal contacts who also need to be on this list?

Do I need to extend the relationship tab and write a custom report or is there an easier way with existing resources?

Thanks in advance for your suggestions!

Cheers Goran

  • how are you selecting normal contact ? Commented Sep 3, 2015 at 14:57
  • At the moment over the navigation point Reports -> Contact Reports -> Constituent Summary. Commented Sep 3, 2015 at 18:48

3 Answers 3


When you do a contact Export or print Mailing Labels there should be options like "Merge labels for contacts with the same address". Does that take care of your need?

  • Nice, I've never noticed this export feature! Thanks a lot! Commented Sep 7, 2015 at 16:06

Can you create a Household contact and make them each members of the Household and direct your mailings to the Households? You should be able to preserve the Individual-ality of the contacts as they are... you're just adding another layer of data (which does add another layer of data entry to keep up, but you do gain the ability to target your data and data extraction appropriately).


If Pete's answer doesn't suffice, we wrote an extension for a client with similar needs that can help you.

Our extension adds tokens such as "Spouse's first name", "Spouse's last name", etc. Then, on CiviCRM 4.5+, you can use tokens as part of a postal/email greeting: https://civicrm.org/blogs/antrik/getting-started-new-name-and-greetings-features-45

You can even make the tokens conditional.

So to solve your problem, I'd create a smart group that grabs half of the people who are married (you may need to use an asymmetric relationship like "Head of Household" for this to work). If you're SQL-savvy, you can even change the existing relationships instead of creating new ones. I'd create a smart group of people who are NOT the Heads of Household.

Once you have the smart group, update your greeting IDs on the "Head of Household" records. Now, use Search Builder to search for everyone you want to appear in your report, but EXCLUDE the folks who are NOT the Heads of Household.

The result should be a list with the correct greetings and no secondary contacts.

All that said - Pete's answer is a lot easier, and in most cases will get you the same results! Please let me know if you need me to put the extension we wrote on Github.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.