> ## Documentation Index
> Fetch the complete documentation index at: https://docs.assistable.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Route incoming messages with active tags

> Map an exact GHL contact tag to the assistant that should handle incoming messages.

Active tags map contact tags to assistants for incoming messaging. Configure the exact tag your GHL integration sends, then test a message from a contact carrying that tag.

Incoming phone calls use the phone number's routing settings. Outgoing call requests select an assistant explicitly. Use [Test incoming calls](/v3/guides/calling/incoming-calls) or [Place an outbound call](/v3/guides/calling/outbound-calls) for those tasks.

## Create a routing rule

You need access to active-tag settings and an assistant in the selected account. For GHL messaging, the contact and integration must belong to the intended connected location.

1. Open **Active tags**.
2. Select **Create active tag**.
3. Enter a descriptive **Rule name**.
4. Enter the exact **Matching tag** used on the GHL contact. If you leave it blank during creation, Assistable generates a value from the rule name; read the saved value before using it in a workflow.
5. Select the **Linked assistant**.
6. Select **Create active tag**.
7. Apply the saved matching tag to a controlled GHL contact, directly or through your workflow.
8. Send an incoming message from that contact through the connected channel.
9. Confirm that the intended assistant responds in the conversation.

For the first test, use one assistant-routing tag on the contact so the expected destination is unambiguous.

## Rule fields

| Field | Values and behavior |
| - | - |
| Rule name | Required display name for the rule. It is not the contact tag used to match messages. |
| Matching tag | Exact matching value. Creation can generate it from the rule name if blank; editing requires a nonblank value. |
| Linked assistant | Select an assistant from the account or **No assistant**. A separate legacy mapping can still route messages when the direct selection is empty. |

## Changing a rule

Edit the rule's matching value or linked assistant and select **Save changes**. Changing **Matching tag** does not migrate existing contact tags or update external workflows. Update those separately and repeat the incoming-message test.

If the editor shows a legacy assistant mapping, clearing the direct **Linked assistant** can leave that mapping in place. Follow the mapping shown in the editor when changing or pausing a route.

## If the assistant does not respond

* Compare the saved matching value with the contact's actual tag. The rule name is a label; the matching value controls routing.
* Check for the `ai_off` tag. The incoming-messaging path stops AI processing when that tag is present.
* Confirm the contact has a matching active tag. A contact with no match does not automatically fall back to the account's only assistant.
* Check that the matching rule points to the intended assistant and that the message is arriving through the correct connected location.

A saved rule confirms the mapping was saved. The controlled incoming message confirms the integration reaches that mapping.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.