← Go Back
Strategy

Tags, Fields & Campaigns: When to Use What

Virtuous gives us three tools for organizing contacts: Tags, Custom Fields, and Campaigns. They each do different things. Using the wrong one is how databases turn into junk drawers. This guide helps you pick the right tool every time.

Which Tool Do I Use?

Every time you need to record something about a contact, start with one question: what kind of information is this? The answer points you to the right tool. Each of these three options serves a different purpose, and they don't overlap much. Pick the wrong one and you'll either clutter up the system or miss out on reporting you could have had.

If you're still not sure, a good rule of thumb: if it has a year in the name, it's probably not a tag. "Gala 2024" is history (Custom Field) or an outreach effort (Campaign). "No direct mail" is a current status (Tag).

All Three at a Glance

Tag Custom Field Campaign
Best for Current status Past events & history Planned outreach & ROI
Answers "What is true about them?" "What did they do?" "What did we send, and did it work?"
Where it lives Every dropdown & filter Engagement History only Campaigns tab only
Financial tracking No No Yes
Dynamic grouping No (manual) Yes (via query) Yes (via query)
Permanent record Often deleted to reduce clutter Always Always

Now let's look at each one in detail.

1. Tags: Current Status, Not History

Use when
Something is true about this contact right now
Tags describe what a contact is, not what they did.

Tags work best for ongoing states that affect how we talk to someone. Think of them like labels on a folder. They tell you how to handle this contact today.

A good tag is timeless. "No direct mail" is just as true next year as it is today. "Capacity 1M-3M" stays relevant until the research changes. You'd never need to delete these to clean things up.

Our tags: Communication preferences (No direct mail, No email, No appeals, Do not call), Receipting preferences, Capacity & Wealth indicators, System tags (Prelapsed, Lapsed). → Full list

Why We Don't Use Tags for Events

Here's the thing: tags show up in every dropdown, every filter, on every screen. If you create a tag for every event, five years from now you'll be scrolling through "Gala 2021," "Coffee Meetup 2022," "Fall Banquet 2023," and a dozen more dead entries just to find "No direct mail."

That's exactly what happened before. The tag list got so long that the useful tags were buried in noise. Cleaning it up meant deleting old tags, which meant losing the historical record. Nobody won.

So now we keep the tag list short and focused. Every tag in the list is something you'd actually use on a regular basis. Past events go somewhere else.

2. Custom Fields: History and One-Off Events

Use when
Something happened and you want a permanent record
Custom fields record what a contact did, not what they are.

For past events, conferences, donor lunches, mission trips, or anything where you want to remember "this person was part of that" but don't need to track giving tied to it, use the Event Participation History multi-select field.

This field lives in the Engagement History group on the contact record. It's permanent, searchable, and completely out of the way. You can query on it anytime, but it won't show up in your tag dropdowns.

Good fits: Conference attendance, donor lunches, mission trips, meetups. Anything where you want the history but don't need a full campaign with financial tracking.
Virtuous contact record showing the Engagement History group with Event Participation History field. The value '2026 OKC Conference (Green Family)' is selected.
The Event Participation History field on a contact record

The big advantage here: the record is permanent. With tags, people eventually delete old event tags to keep things clean, and the history is gone. With a custom field, the data stays on the contact forever and doesn't clutter anything else.

3. Campaigns: Planned Outreach with Financial Tracking

Use when
You sent something and need to track giving from it
Campaigns answer: "Did this effort generate donations?"

When you're doing planned outreach (a direct mail appeal, an email campaign, a giving challenge) and want to measure the financial return, that's a Campaign. Campaigns connect who you reached to what they gave.

This is the structure we're moving into for all planned outreach. It uses Queries in Virtuous to enroll members, so it's built for organized sends and segmented audiences, not one-off invites. → Active Campaigns

Why Campaigns Beat Tags for Outreach Tracking

Say you hosted a conference and want to know: did attending lead anyone to give? Here's what each tool gives you:

Using a Tag Using a Campaign
Historical Record Yes, but it clutters the tag list forever Yes, lives in the Campaigns tab. Out of the way.
Reporting You can see who was there Who was there AND if they gave because of it
ROI Tracking No Yes. Total cost vs. total gifts from attendees.
Ease of Filtering Simple tag filter Just as simple using the "Campaign Membership" filter
Enrollment Manual. Add/remove contacts one by one. Automated via Saved Queries + Run Segmentation

The Campaign Workflow

Campaigns need a few connected pieces. Here's how they fit together:

Campaign workflow
Custom Field or Contact Data
Saved Query
Campaign Segment
Then: Actions → Run Segmentation
Critical step. Don't skip this.

After linking a query to a Campaign Segment, you must click Actions > Run Segmentation. Until you do, the segment may show Total Gifts (money received with that code) but 0 Total Contacts. Running segmentation enrolls the people from your query so reporting actually works.

Virtuous Campaign Communication page showing the Actions dropdown with Run Segmentation option. The table shows Total Giving of $53,144.85 and 64 Total Gifts.
The Actions dropdown on a Campaign Communication page. Click "Run Segmentation" to enroll contacts.

Putting It Into Practice

Now that you know which tool to use, here's how to use each one with real examples from our system.

Example: Building a Mailing List That Respects Preferences

We're sending the 2026 Easter direct mail appeal (segment code EA0326DM1). We need everyone eligible to get it, but we have to respect the communication preferences people have set. This is where tags do their job.

Query: Easter 2026 Mailable Donors
1
Start with your base audience
Contact Query → add your starting criteria (e.g., gave in last 24 months, or a specific group)
2
Exclude "No direct mail"
Tag → Does Not Include → No direct mail
These contacts want zero physical mail of any kind.
3
Exclude "No appeals"
Tag → Does Not Include → No appeals
These contacts are fine with informational mail but have opted out of fundraising asks.
4
Exclude "RTS" (Return to Sender)
Tag → Does Not Include → RTS (Return to Sender)
No point mailing to a bad address. Verify these separately.
5
Save the query and link to Campaign Segment
Save as "Easter 2026 - Mailable Donors." Link it to the 2026 Easter campaign, segment EA0326DM1. Then click Actions > Run Segmentation.
Virtuous query builder with Field set to Tag, Operator set to 'Is none of', and Values showing No Direct Mail, No appeals, and RTS-Address Unknown / No Forward / Not Deliverable.
Tag exclusion filter: "Is none of" removes contacts with these communication preferences from the list.

This is where tags shine. They're actionable filters you use every time you build an audience. "No direct mail" isn't trivia. It decides who gets mail today.

Example: Querying Event Participation History

We want to follow up with everyone who attended the 2026 OKC Conference. We don't need a campaign for this. We just want the list.

Query: OKC Conference Attendees
1
Create a Contact Query
Go to Contacts → Queries → New Query
2
Filter on the custom field
Custom Field → Event Participation History → Includes → 2026 OKC Conference (Green Family)
3
Save it
This query now works like a dynamic list. Any time you add this value to another contact, they automatically show up here. No manual upkeep.
Virtuous query builder with Field set to Event Participation History, Operator set to 'Is any of', and Value showing 2026 OKC Conference (Green Family).
Filtering on Event Participation History. This acts like a dynamic tag for anyone with this value.

This does the same thing as tagging someone "OKC Conference 2026," but it doesn't pollute your tag list. And the record is permanent because there's no reason to ever delete it.

Example: Full Campaign Setup (Book Boom)

The 2026 Book Boom was a relationship-building effort where we mailed books to about 200 people. We want to know if it moved the needle on giving. That means we need all three pieces working together.

Campaign Setup: 2026 Book Boom
1
Record the history
Add "2026 Book Boom" to the Event Participation History field on each contact who received a book.
2
Build the query
Contact Query → Event Participation History Includes 2026 Book Boom
3
Link to Campaign Segment
On the 2026 Book Boom campaign, link this query to the BO0226DM1 segment.
4
Run Segmentation
Actions > Run Segmentation. Now you can see total gifts from book recipients and measure ROI.
What you end up with
200 contacts
$X in gifts
=
ROI

Without the campaign layer, you'd know who got a book (from the custom field) but have no idea if it led to giving. That's the difference.

Key Takeaways

  • Tags = current status that affects how we communicate. Keep the list clean. If it's not timeless, it's not a tag.
  • Custom Fields (Event Participation History) = permanent history. Use for events and participation where giving doesn't need to be tracked directly.
  • Campaigns = planned outreach with financial tracking. Use when you need to know: did this effort generate donations?
  • Queries are the glue. They turn field values and tags into dynamic, self-updating lists.
  • When using Campaigns, always Run Segmentation to connect contacts to financial data.
  • Rule of thumb: if it has a year in the name, it's probably a Custom Field, not a tag.