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

# Adicionar seguidor à oportunidade

> Adiciona ou reativa um usuário como seguidor da oportunidade usando o usuário criador da chave de integração como ator. Se o usuário já for seguidor ativo, a função e as observações são atualizadas sem duplicar o vínculo.




## OpenAPI

````yaml /openapi.json post /integrations/external/deals/{id}/followers
openapi: 3.0.3
info:
  title: >-
    Integração Externa - Leads, Oportunidades, Tarefas, Arquivos, Propostas,
    Chats, Satisfação e Campos Personalizados
  version: 1.0.0
  description: >
    Documentação oficial da API externa da Wegly para campos personalizados,
    leads, oportunidades, tarefas, arquivos, propostas, chats e satisfação
    (`/integrations/external/custom-fields`, `/integrations/external/files`,
    `/integrations/external/leads`, `/integrations/external/deals`,
    `/integrations/external/tasks`, `/integrations/external/proposals`,
    `/integrations/external/chats` e `/integrations/external/satisfaction`).
    Todas as descrições estão em português e refletem as regras aplicadas pelo
    serviço.
servers:
  - url: https://api.wegly.com.br
    description: Ambiente de produção Wegly
security:
  - bearerAuth: []
tags:
  - name: Campos Personalizados
    description: >-
      Consulta dos campos personalizados disponíveis para uso nas integrações
      externas.
  - name: Arquivos
    description: >-
      Upload de arquivos públicos de integração vinculados diretamente a leads
      ou oportunidades.
  - name: Leads
    description: >-
      Operações de listagem, criação, consulta e atualização de leads via
      integração externa.
  - name: Oportunidades
    description: Operações de criação de oportunidades (deals) via integração externa.
  - name: Tarefas
    description: >-
      Operações de listagem, criação, consulta, atualização e remoção de tarefas
      vinculadas a leads, oportunidades, entregas, pessoas ou organizações.
  - name: Satisfação
    description: >-
      Geração de links públicos para formulários de satisfação via integração
      externa.
  - name: Propostas
    description: >-
      Operações de listagem, criação, consulta, atualização e remoção de
      propostas via integração externa.
  - name: Chats
    description: >-
      Operações principais de listagem, criação, consulta e resumo de não lidas
      de chats via integração externa.
paths:
  /integrations/external/deals/{id}/followers:
    post:
      tags:
        - Oportunidades
      summary: Adicionar seguidor à oportunidade
      description: >
        Adiciona ou reativa um usuário como seguidor da oportunidade usando o
        usuário criador da chave de integração como ator. Se o usuário já for
        seguidor ativo, a função e as observações são atualizadas sem duplicar o
        vínculo.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: UUID da oportunidade.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpportunityFollowerInput'
            examples:
              seguidorOportunidade:
                summary: Adicionar seguidor à oportunidade
                value:
                  user_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                  role_id: b2c3d4e5-f6a7-8901-bcde-f23456789012
                  notes: Acompanhar proposta enviada pelo parceiro.
      responses:
        '200':
          description: Lista atualizada de seguidores da oportunidade.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpportunityFollowersResponse'
        '400':
          description: >-
            Payload inválido, usuário alvo inexistente/inativo ou função de
            seguidor inválida.
        '401':
          description: Token de integração ausente ou inválido.
        '403':
          description: >-
            Permissão `crm/deal.update` ausente ou domínio de origem não
            autorizado na chave.
        '404':
          description: Oportunidade não encontrada ou inacessível ao usuário da chave.
components:
  schemas:
    OpportunityFollowerInput:
      type: object
      properties:
        user_id:
          type: string
          format: uuid
          description: >-
            Usuário existente na empresa. Duplicatas são ignoradas na mesma
            requisição.
        role_id:
          type: string
          format: uuid
          description: Função de seguidor (deve existir e estar ativa).
        notes:
          type: string
          maxLength: 1000
      required:
        - user_id
        - role_id
      additionalProperties: false
    OpportunityFollowersResponse:
      type: object
      properties:
        followers:
          type: array
          items:
            $ref: '#/components/schemas/ExternalFollowerItem'
    ExternalFollowerItem:
      type: object
      properties:
        role:
          type: object
          nullable: true
          properties:
            id:
              type: string
              format: uuid
            name:
              type: string
        user:
          type: object
          nullable: true
          properties:
            id:
              type: string
              format: uuid
            name:
              type: string
            avatar:
              type: string
              nullable: true
        notes:
          type: string
          nullable: true
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >
        Utilize o token de integração no header `Authorization: Bearer {token}`.
        O domínio de origem (Origin/Referer) deve respeitar `allowed_domain`,
        quando configurado na chave.

````