Attributes
An attribute is a requirement a call can carry and an agent can hold — Spanish, VIP, a particular vendor. The tab states the rule in full:
Eligibility attributes for inbound calls. A caller inherits attributes from the number they dial and from their contact’s tags; only agents holding ALL of a call’s attributes are offered it. Every shared number and vendor also gets its own attribute automatically — an agent must be given it to take that source’s calls. Assign attributes to agents under Users → Attributes.
Two things to take from that. It’s inbound only — nothing here affects who gets dialed on an outbound campaign. And it’s an AND, not an OR: a call carrying two attributes goes only to agents holding both.
The list
Section titled “The list”| Column | What it shows |
|---|---|
| Name | What agents and numbers reference |
| Origin | Custom, Shared number, or Vendor |
| Tag | The GoHighLevel contact tag that applies it, or how it’s applied instead |
Only Custom rows can be edited or deleted. The others are created for you and named after their owner: every shared number and every vendor gets one. You rename them by renaming the number or the vendor, and they disappear when it does.
Those system rows are listed rather than hidden for a reason — they’re the answer to why do this new vendor’s calls reach nobody? The attribute exists; nobody has been given it yet.
Deleting a custom one is a real change to live routing, and the confirmation spells it out: every agent who has it loses it and it comes off any number that hands it out, and Calls that were held back for agents with “{name}” stop being held back — including callers waiting in a queue right now. They can go to anyone else who is eligible. It can’t be undone; making it again means giving it back to each agent and re-adding it to those numbers.
Adding or editing one
Section titled “Adding or editing one”| Field | What it does |
|---|---|
| Name | What agents and numbers reference (e.g. Spanish, VIP). Required |
| Tag (optional) | GHL contact tag that auto-applies this attribute. Blank = applied only via a number. |
The tag box suggests tags already in use in your connected sub-account, so you don’t have to remember the exact spelling. Tags are matched exactly as written, capitalisation included.
The two ways an attribute lands on a call
Section titled “The two ways an attribute lands on a call”From the contact’s tags. Give the attribute a tag, and any caller whose contact carries that tag arrives with the attribute attached. This is how “the Spanish-speaking customers we already know about reach a Spanish-speaking agent” works, with no per-number setup.
From the number they dialed. An attribute with no tag — the list shows name-only — applied via a number — is applied only when a caller comes in on a shared number that hands it out. That’s ticked on the number itself, on its own settings screen.
The two combine. A caller can arrive with one attribute from the number and another from their tags, and then needs an agent holding both.
Giving them to agents
Section titled “Giving them to agents”An attribute does nothing until someone holds it. That’s a per-person setting: open the user under Users → Attributes and tick what they hold. (The same ticks are offered from a shared number’s or a vendor’s own settings screen, so you can hand out a new source without walking the whole roster.)
How this relates to the other routing rules
Section titled “How this relates to the other routing rules”Attributes are one of three separate gates on an inbound call, and all three must pass:
- The agent is assigned to a campaign the call is eligible for — see Campaigns → General.
- The agent holds every attribute the call carries — this screen.
- If the campaign’s State-licensing routing (inbound) is on, the agent is licensed for the caller’s state — see Campaigns → Inbound. That’s a separate mechanism with its own toggle, not an attribute.
None of these apply on the outbound side. Outbound has its own state-licensing setting on Campaigns → Outbound, and it ignores attributes entirely.