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

# Atribuir tags ao chat

> Vincula **tags (etiquetas)** a um contato.

Diferente dos demais endpoints de Settings, este aceita **várias etiquetas de uma vez**.

**Dois comportamentos, controlados por `replace`:**

| `replace` | O que acontece |
|---|---|
| `false` *(padrão)* | As etiquetas enviadas são **somadas** às que o contato já tem. Não duplica se a etiqueta já estiver vinculada. |
| `true` | O array enviado **substitui** todas as etiquetas atuais do contato. |

**Como usar:**
1. Chame `GET /v1/settings/tags` e copie os `id` das etiquetas desejadas.
2. Envie esses `id` no array `tags`, junto com o `contact`.

> O `contact` é o UUID do contato, o mesmo `id` retornado em `GET /v1/contacts`.

A resposta devolve o array **final** de etiquetas do contato após a operação.



## OpenAPI

````yaml /openapi/liderhub.json patch /v1/settings/tags
openapi: 3.0.0
info:
  title: API Liderhub
  description: >-
    API REST para gerenciamento de conversas WhatsApp com IA.


    ## Autenticação


    A autenticação é obrigatória e deve ser feita utilizando o header
    `x-company-key`, gerado diretamente na plataforma Liderhub.


    Cada workspace possui uma chave própria, garantindo isolamento e segurança.


    ## Recursos disponíveis


    | Recurso | Descrição |

    |---------|-----------|

    | **Connections** | Gerenciar conexões WhatsApp do workspace |

    | **Contacts** | Listar, buscar, cadastrar contatos e marcar como lidos |

    | **Message** | Listar, buscar, enviar e cancelar mensagens agendadas |

    | **Agents** | Listar agentes de IA configurados |

    | **Users** | Listar usuários do workspace |

    | **Settings** | Consultar e atribuir status, origens, tags e departamentos
    aos chats |

    | **Groups** | Grupos WhatsApp: listar, detalhar, criar, atualizar
    nome/foto/configurações e gerenciar participantes e admins |

    | **Templates** | Listar, obter e enviar mensagens rápidas (templates) |


    ## Paginação


    Endpoints que retornam listas suportam paginação:

    - `page`: número da página (inicia em 1)

    - `limit`: itens por página (máximo 100)


    Retorno inclui metadados em `pagination`: page, limit, total, totalPages,
    hasNextPage, hasPreviousPage


    ## Filtros de lista (GET /v1/contacts)


    | Filtro | Tipo | Descrição |

    |--------|------|-----------|

    | `number` | string | Filtrar por número de telefone |

    | `connection` | UUID | Filtrar por conexão |

    | `id` | UUID | Filtrar por chat/contato — no máximo um resultado |

    | `department` | UUID | Filtrar por departamento |

    | `tags` | UUID | Filtrar por tag(s) - separar por vírgula |

    | `status` | UUID | Filtrar por status |

    | `stage` | enum | Filtrar por estágio: Open, Closed, Pending |

    | `hasUnread` | boolean | Filtrar contacts com mensagens não lidas |

    | `createdAfter` | ISO8601 | Criados após data |

    | `createdBefore` | ISO8601 | Criados antes de data |

    | `modifiedAfter` | ISO8601 | Modificados após data |

    | `modifiedBefore` | ISO8601 | Modificados antes de data |


    ⚠️ **Importante**: Utilize esta API de maneira responsável. Não forneça a
    credencial para terceiros.
  version: 1.0.0
  contact: {}
servers:
  - url: https://api.liderhub.com.br
    description: Produção
security: []
tags:
  - name: Connections
    description: Gerenciar conexões WhatsApp do workspace
  - name: Contacts
    description: 'Contatos/conversas: listar e filtrar contatos.'
  - name: Message
    description: Listar, buscar, enviar e cancelar mensagens agendadas
  - name: Agents
    description: Listar agentes de IA configurados
  - name: Users
    description: Listar usuários do workspace
  - name: Settings
    description: Consultar e atribuir status, origens, tags e departamentos aos chats
  - name: Groups
    description: Gestão de grupos WhatsApp
  - name: Templates
    description: Templates / mensagens rápidas
paths:
  /v1/settings/tags:
    patch:
      tags:
        - Settings
      summary: Atribuir tags ao chat
      description: >-
        Vincula **tags (etiquetas)** a um contato.


        Diferente dos demais endpoints de Settings, este aceita **várias
        etiquetas de uma vez**.


        **Dois comportamentos, controlados por `replace`:**


        | `replace` | O que acontece |

        |---|---|

        | `false` *(padrão)* | As etiquetas enviadas são **somadas** às que o
        contato já tem. Não duplica se a etiqueta já estiver vinculada. |

        | `true` | O array enviado **substitui** todas as etiquetas atuais do
        contato. |


        **Como usar:**

        1. Chame `GET /v1/settings/tags` e copie os `id` das etiquetas
        desejadas.

        2. Envie esses `id` no array `tags`, junto com o `contact`.


        > O `contact` é o UUID do contato, o mesmo `id` retornado em `GET
        /v1/contacts`.


        A resposta devolve o array **final** de etiquetas do contato após a
        operação.
      operationId: LabelController_updateTags
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateChatTagsDto'
      responses:
        '200':
          description: Tags atualizadas com sucesso (array final no chat)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateChatTagsResponseDto'
        '400':
          description: Tag inválida ou inexistente no workspace
        '401':
          description: Não autorizado — chave de empresa inválida ou ausente
        '404':
          description: Contato não encontrado neste workspace
      security:
        - x-company-key: []
components:
  schemas:
    UpdateChatTagsDto:
      type: object
      properties:
        contact:
          type: string
          description: UUID do contato (mesmo `id` retornado em `GET /v1/contacts`)
          format: uuid
          example: b7d4e2a1-3f8c-4a92-9d15-6e0c8b4a7f23
        tags:
          description: >-
            UUIDs das tags (etiquetas) — obtenha em `GET /v1/settings/tags`.
            Aceita várias.
          example:
            - 9e3b6a52-7c14-4f8d-b0a9-2d5c8e1f4b76
            - c85f2d19-4b73-4e6a-9128-7f0a3c6d5e91
          type: array
          items:
            type: string
        replace:
          type: boolean
          description: >-
            Se `true`, o array enviado substitui todas as etiquetas atuais do
            contato. Se `false` ou omitido, as etiquetas enviadas são somadas às
            existentes, sem duplicar.
          default: false
          example: false
      required:
        - contact
        - tags
    UpdateChatTagsResponseDto:
      type: object
      properties:
        contact:
          type: string
          format: uuid
          example: b7d4e2a1-3f8c-4a92-9d15-6e0c8b4a7f23
          description: UUID do contato
        tags:
          example:
            - 9e3b6a52-7c14-4f8d-b0a9-2d5c8e1f4b76
            - c85f2d19-4b73-4e6a-9128-7f0a3c6d5e91
          type: array
          items:
            type: string
          description: Array final de etiquetas do contato após a operação
      required:
        - contact
        - tags
  securitySchemes:
    x-company-key:
      type: apiKey
      in: header
      name: x-company-key
      description: Chave de autenticação do workspace (gerada na plataforma Liderhub)

````