I work with a number of organizations that do a lot of outreach via postal mail. What is the best way to handle the bad addresses when returned mail is received? I do not want to simply delete the address as there may be a need to easily reference it in the future (for NCOA updates or to avoid re-adding it from another source).

There doesn't seem to be a way to simply mark an address as bad or inactive like the On Hold field for emails. One idea I had would be to just use a new Address Location Type but I'm wondering if there are other approaches.

5 Answers 5


I think a location type of something like "Rejected" will give you great flexibility. If you want to get a bit more elaborate, combine the location type with a custom field that tracks the reason for nondelivery.

By using a location type, it simplifies searching, exporting, and importing when you want to run those addresses through NCOA or have a user work through a spreadsheet of bad addresses. When good ones are found and it's time to import, use the API csv Import GUI extension so that you can overwrite the address records, change their location type, and wipe the custom field in one pass.

  • Agree. We have often done this, eg a Location Type of GNA = Gone No Address
    – petednz - fuzion
    May 2, 2015 at 20:43

I would second Erik's suggestion of adding an "on hold" or "bad address" property to postal mail addresses, similar to what civicrm has for email address.

The "invalid postal address" scenario is common enough, and this has come up a few times, that a generic solution is definitely worth it and avoid orgs that do a fair amount of mailings work around this. I would structure this similar to the "on hold" for email addresses, and then have the mailing label and other workflows respect the property

Integrating this with the USPS (or other providers) address cleanup/validation would make it even better

  • I know this is a very old question, but it is still relevant. I find this answer, with it's integration into Civi workflows for labels, merges, etc. to be much more useful than the location type solution, which is easy but incomplete. I'd like to see this added to Core as per feature request: issues.civicrm.org/jira/browse/CRM-16430 Jun 11, 2018 at 14:38
  • Has there been any movement on a feature like this?
    – J. Rolfs
    Jan 16, 2020 at 16:38

I guess I would add an 'on hold' custom field to the Address entity?


RE: Lobo's answer. We've (Palante) written an extension that adds a Fundraising address flag, based on the Primary address flag, which could be repurposed for this. Though without knowing all the use cases, I can think there might be differences, one of which is you can't have more than one fundraising address but you might have more than one bad address. We'll be adding this extension to the forthcoming experimental extension list, so it will be available soon.


The approach I would take is as follows:

Firstly I would create a group for contacts where mail to the postal address has been returned as undeliverable for one reason or another.

When mail gets returned the contact gets added to the group. The group can then be excluded form further mailing attempts to reduce your mailing costs.

You can then focus on contacting the person or organisation involved via other channels (phone, email) to get a correct address from them.

When you have a correct address you can edit their record and remove them from the group so that they then get included in future mailings.

  • 2
    I would caution against using groups for this purpose because (1) if a contact has multiple addresses, data is not captured about which address is invalid, and (2) if the contact does something like make an online donation, their new (presumably valid) address will be captured but they will continue to be excluded from mailings.
    – Sean
    Apr 20, 2015 at 12:53

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.