Learn how to add and remove tags from contacts for flexible organization and filtering.
Overview #
Tags provide flexible, ad-hoc categorization for contacts. Unlike lists, tags can be created on-the-fly and contacts can have unlimited tags.
Prerequisites:
- Permission to update contacts and read tag definitions
Assigning Tags #
Method 1: During Contact Creation #
- PloverCRM → Contacts → Add New Contact
- Fill in contact information
- In Tags metabox, type tag name → Press Enter
- Click Publish
Tip: Create new tags on-the-fly by typing names that don’t exist yet.

Method 2: Editing Existing Contacts #
- PloverCRM → Contacts → Click contact
- In Tags metabox, type or select tags
- Click Update
Method 3: Bulk Tagging #
- PloverCRM → Contacts → Select multiple contacts
- Bulk Actions → Edit → Apply
- In bulk edit panel, add tags
- Click Update

Method 4: Via API #
curl -X PUT https:<span class="hljs-regexp">//y</span>oursite.com<span class="hljs-regexp">/wp-json/</span>plover-crm<span class="hljs-regexp">/v1/</span>contacts<span class="hljs-regexp">/123 \
-H "Authorization: Bearer YOUR_API_PASSWORD" \
-H "Content-Type: application/</span>json<span class="hljs-string">" \
-d '{"</span>tags<span class="hljs-string">": ["</span>hot-lead<span class="hljs-string">", "</span>enterprise<span class="hljs-string">", "</span>follow-up<span class="hljs-string">"]}'</span>
Note: API accepts tag slugs or IDs and replaces all tags.
Method 5: Form Integrations #
- PloverCRM → Data Sources → Edit/create integration
- In field mapping, find Tags
- Enter comma-separated tag names or map to form field
- Save integration
Removing Tags #
Single Contact #
- Open contact → Click X next to tag in Tags metabox → Update
Multiple Contacts #
- Filter by tag → Select contacts
- Bulk Actions → Edit → Remove tag → Update
Remove All from a Tag #
- PloverCRM → Tags → Hover over tag → View
- Select all contacts → Bulk Actions → Edit
- Remove tag → Update
Tag Behavior #
Tags vs Lists:
| Feature | Tags | Lists |
|---|---|---|
| Purpose | Flexible labeling | Structured grouping |
| Creation | On-the-fly | Pre-defined |
| Use Case | Ad-hoc categorization | Segmentation |
| Typical Count | Many (50+) | Few (5-20) |
Auto-Creation: Tags are automatically created when assigned to contacts—no need to pre-create.
Permissions:
- Super Admin: Assign any tag to any contact
- Custom Roles: Require
tag_definitionsread permission - Update Scope: Must have permission to update the contact
Common Tag Use Cases #
Lead Qualification: hot-lead, cold-lead, qualified, not-interested
Follow-Up Status: follow-up-needed, contacted, awaiting-response, closed
Source Tracking: website-form, trade-show, referral, cold-outreach
Priority Levels: high-priority, medium-priority, low-priority
Product Interest: interested-in-product-a, interested-in-product-b
Behavioral: opened-email, clicked-link, downloaded-resource, attended-webinar
Best Practices #
Naming:
- Use lowercase with hyphens (e.g., “hot-lead” not “Hot Lead”)
- Be consistent with naming patterns
- Avoid spaces (become hyphens in slugs)
- Use descriptive, self-explanatory names
Maintenance:
- Regularly consolidate similar tags
- Delete unused tags
- Merge duplicates (e.g., “follow-up” and “followup”)
- Document tag meanings for team
Strategy:
- Define tagging strategy before creating many tags
- Limit tags per contact (5-10 is reasonable)
- Use tags for temporary states, lists for permanent categories
- Consider custom fields for structured data
Automation:
- Use form integrations for auto-tagging
- Set up webhooks for external events
- Use API to sync with other systems
Troubleshooting #
| Issue | Solution |
|---|---|
| Tags metabox not visible | Check tag_definitions permission, verify Screen Options |
| Tags not saving | Verify update permission, check browser console, avoid special characters |
| Duplicate tags created | Manually merge and delete duplicates, establish naming conventions |
| Bulk tagging not working | Check update_scope, try smaller batches, verify permissions |
| API assignment fails | Verify tag slugs/IDs, check authentication, ensure array format |
Related Documentation #
- Creating and Managing Tags
- Lists and Tags Overview
- Filtering by Lists and Tags
- Bulk Operations
- Form Integrations
API Reference #
Update Contact Tags:
PUT <span class="hljs-regexp">/wp-json/</span>plover-crm<span class="hljs-regexp">/v1/</span>contacts<span class="hljs-regexp">/{id}</span>
Request:
{ <span class="hljs-attr">"tags"</span>: [<span class="hljs-string">"hot-lead"</span>, <span class="hljs-string">"enterprise"</span>, <span class="hljs-string">"follow-up"</span>] }
Response:
{
<span class="hljs-attr">"success"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"data"</span>: {
<span class="hljs-attr">"id"</span>: <span class="hljs-number">123</span>,
<span class="hljs-attr">"email"</span>: <span class="hljs-string">"[email protected]"</span>,
<span class="hljs-attr">"tags"</span>: [
{ <span class="hljs-attr">"id"</span>: <span class="hljs-number">5</span>, <span class="hljs-attr">"title"</span>: <span class="hljs-string">"Hot Lead"</span>, <span class="hljs-attr">"slug"</span>: <span class="hljs-string">"hot-lead"</span> },
{ <span class="hljs-attr">"id"</span>: <span class="hljs-number">8</span>, <span class="hljs-attr">"title"</span>: <span class="hljs-string">"Enterprise"</span>, <span class="hljs-attr">"slug"</span>: <span class="hljs-string">"enterprise"</span> },
{ <span class="hljs-attr">"id"</span>: <span class="hljs-number">12</span>, <span class="hljs-attr">"title"</span>: <span class="hljs-string">"Follow Up"</span>, <span class="hljs-attr">"slug"</span>: <span class="hljs-string">"follow-up"</span> }
]
}
}
Create Tag:
POST <span class="hljs-regexp">/wp-json/</span>plover-crm<span class="hljs-regexp">/v1/</span>tags
Request:
{
<span class="hljs-attr">"title"</span>: <span class="hljs-string">"Hot Lead"</span>,
<span class="hljs-attr">"slug"</span>: <span class="hljs-string">"hot-lead"</span>,
<span class="hljs-attr">"description"</span>: <span class="hljs-string">"Contacts with high purchase intent"</span>
}
Last Updated: February 3, 2026