Skip to main content
CTG

Contact Tags

Contacts & CRM · Basic · Updated March 2026

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 modify
  • tags — array of tag strings to add or remove
  • action — 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.