> ## 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.

# Use call dispositions in GoHighLevel workflows

> Confirm the tags your integration writes before using them to trigger follow-up.

Connected GoHighLevel contacts can receive tags derived from a call's disconnection reason. The account needs a working connection and the call must resolve to a contact for the tag write to occur.

## Understand the result

A detailed disposition is converted to a readable tag. For example, `user_hangup` becomes `contact hangup`, and `agent_hangup` becomes `assistant hangup`.

Where answered tagging is enabled, a separate `answered` or `not answered` classification is also written. The answered set includes contact hangup, assistant hangup, transfer, inactivity, and maximum-duration endings. Other or unknown dispositions are classified as not answered by that mapping.

These are call classifications. They do not prove a person completed the conversation, an appointment was booked, or a payment was collected.

## Disposition values

These are the normalized dispositions produced by the current phone-call aggregation path. The readable GHL tag replaces underscores with spaces and changes `user` to `contact` and `agent` to `assistant`.

| Value | Readable tag | Meaning |
| - | - | - |
| `user_hangup` | `contact hangup` | The connected contact ended the call. |
| `agent_hangup` | `assistant hangup` | The assistant side ended the call, or the answered-call fallback selected this outcome. |
| `call_transfer` | `call transfer` | A transfer was bridged. |
| `max_duration_reached` | `max duration reached` | The time limit ended the call. |
| `voicemail_reached` | `voicemail reached` | Voicemail or an applicable voicemail/IVR pickup condition was detected. |
| `dial_no_answer` | `dial no answer` | No answer, timeout, or a canceled unanswered call. |
| `user_declined` | `contact declined` | The call was rejected or declined. |
| `dial_busy` | `dial busy` | The destination reported busy. |
| `invalid_destination` | `invalid destination` | The destination was not found or was invalid. |
| `telephony_provider_permission_denied` | `telephony provider permission denied` | The provider rejected authorization. |
| `telephony_provider_unavailable` | `telephony provider unavailable` | The provider or upstream service was unavailable. |
| `sip_routing_error` | `sip routing error` | SIP routing loop or excessive-hop error. |
| `dial_failed` | `dial failed` | Other mapped dialing or connection failure. |

The binary answered-tag mapping additionally recognizes `inactivity` as answered if that value is supplied. Missing or unrecognized dispositions map to **not answered**. Treat provider and future values you do not recognize as unknown in your own workflow rather than discarding the event.

## Create a tested follow-up

1. Complete a test call to a contact you can inspect in GoHighLevel.
2. Open that contact and record the exact tags added by your setup.
3. Create the follow-up workflow using the observed tag and the intended contact criteria.
4. Run a second call to the same contact while the tag is already present.
5. Confirm whether your workflow ran again and whether that is the intended behavior.

If you need a distinct event for every call, use a [post-call webhook](/v3/guides/call-results/webhooks) and its call ID. Do not depend on re-adding an existing tag to create a new event.

## Troubleshooting

* **No tag:** check the linked contact, the GoHighLevel connection, and the completed call result.
* **Unexpected tag:** compare it with the normalized disconnection reason and inspect other workflows that may add their own tags.
* **Follow-up did not repeat:** inspect the CRM trigger's behavior when the contact already has the tag.
* **Tag says answered but outcome is missing:** review the recording, transcript, and actual business record.

[Save call results](/v3/guides/call-results/save-to-crm) · [GHL connection troubleshooting](/v3/guides/troubleshooting/ghl-connection)


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