Contact Tags
Add, remove, and bulk-manage tags on contacts for segmentation, automation triggers, and pipeline filtering through the GHL MCP server.
Tags are the connective tissue of GoHighLevel. They trigger workflows, filter smart lists, segment audiences for campaigns, and control which automations fire on which contacts. Managing tags programmatically through MCP means you can build segmentation logic that runs automatically based on external events, behavior data, or business rules that GHL’s native UI can’t handle alone.
What This MCP Tool Does
This tool lets you add tags to contacts, remove tags from contacts, and perform bulk tag operations across multiple contacts in a single call. Tags are strings — there’s no separate tag management system. If you add a tag that doesn’t exist yet, it gets created automatically.
The real power is in combining tag operations with other MCP tools. Create a contact via Contact CRUD, add tags based on their source or behavior, and then use those tags to trigger workflows via Campaign & Workflow. The tag is the bridge between data and action.
Endpoint Reference
Add tags to a contact:
POST /contacts/{contactId}/tags
Accepts an array of tag strings. Tags that already exist on the contact are silently ignored (no errors, no duplicates).
Remove tags from a contact:
DELETE /contacts/{contactId}/tags
Removes specified tags from the contact. Tags that don’t exist on the contact are silently ignored.
Bulk update tags:
POST /contacts/bulk/tags
Add or remove tags across multiple contacts in a single call. Useful for batch segmentation changes, campaign preparation, or cleanup operations.
Authentication
Requires a Private Integration Token (PIT) with the contacts scope enabled.
Key Parameters
For add/remove operations:
tags— array of tag strings (e.g.,["hot-lead", "facebook-source", "needs-follow-up"])
For bulk operations:
contactIds— array of contact IDs to modifytags— array of tag strings to add or removeaction— whether to add or remove the specified tags
Important Notes
Tag names are case-sensitive in GHL. “Hot Lead” and “hot lead” are treated as different tags. Establish a naming convention early and stick to it. Recommended: lowercase with hyphens (e.g., hot-lead, needs-callback, source-facebook).
Tags added via MCP trigger the same workflow conditions as tags added through the UI or other automation. If you have a workflow with a “Tag Added” trigger for “new-client,” adding that tag via MCP will fire that workflow.
There is no endpoint to list all available tags in a location. Tags are created implicitly when first applied to a contact. If you need a reference list, maintain one in your own system or use Location Tags for location-level tag management.
Common Questions
Do tags added via MCP trigger workflows? Yes. Tag-based workflow triggers fire regardless of how the tag was added — through the UI, a workflow action, or an MCP API call.
Can I add multiple tags in one call? Yes. The tags parameter accepts an array. You can add as many tags as you need in a single request.
What happens if I try to remove a tag that isn’t on the contact? Nothing. The operation completes successfully and the tag simply isn’t there.
Is there a limit to how many tags a contact can have? There’s no documented hard limit, but performance degrades with very large tag sets. Keep tags purposeful and remove them when they’ve served their function.
Related MCP Tools
- Contact CRUD — Create contacts with initial tags, or update tag lists
- Campaign & Workflow — Enroll contacts in workflows triggered by tag changes
- Contact Fields — Use custom fields alongside tags for richer segmentation
- Location Tags — Manage tags at the location/sub-account level
- Duplicate Finder — Find contacts before applying tag changes