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

# Asigna (upsert) un valor de tracker a una entidad VoC por nombre de tracker

> Idempotente: si (`entity`, `trackerName`) ya tiene un valor, se sobrescribe. Resuelve `trackerId` del lado del servidor.



## OpenAPI

````yaml /openapi-v1.es.json post /v1/external-trackers/{entityType}/{id}
openapi: 3.0.0
info:
  title: Woku Client API v1
  description: >-
    API REST pública para la administración programática de programas
    Voice-of-Customer de woku: trackers, instrumentos VoC (NPS, woku, CES,
    CSAT), planes de acción, tickets de soporte, envío multicanal y captura de
    respuestas. Las solicitudes están delimitadas por empresa mediante la clave
    API. Nunca envíe un id de empresa.
  version: 1.0.0
  contact:
    name: Woku
    url: https://woku.app
    email: team@woku.app
servers:
  - url: https://clientapi.woku.app
    description: Producción
security: []
tags: []
paths:
  /v1/external-trackers/{entityType}/{id}:
    post:
      tags:
        - v1 - external-trackers
      summary: >-
        Asigna (upsert) un valor de tracker a una entidad VoC por nombre de
        tracker
      description: >-
        Idempotente: si (`entity`, `trackerName`) ya tiene un valor, se
        sobrescribe. Resuelve `trackerId` del lado del servidor.
      operationId: ExternalTrackersController_assignEntityTrackerByName
      parameters:
        - name: entityType
          required: true
          in: path
          schema:
            enum:
              - nps
              - csat
              - ces
              - form
              - flow
            type: string
        - name: id
          required: true
          in: path
          schema:
            type: string
            format: ObjectId
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssignExternalTrackerByNameDTO'
      responses:
        '201':
          description: Valor asignado o actualizado
        '400':
          description: >-
            Tipo de entidad no compatible, tracker inactivo o error de
            validación
        '403':
          description: La entidad pertenece a otra empresa
        '404':
          description: No se encontró la entidad o el nombre del rastreador
      security:
        - bearer: []
components:
  schemas:
    AssignExternalTrackerByNameDTO:
      type: object
      properties:
        name:
          type: string
          description: >-
            Nombre de la definición de tracker externa de nivel empresa a la que
            pertenece este valor.
          example: trr
          maxLength: 60
        value:
          type: string
          description: Valor de identificador externo, siempre se almacena como string.
          example: dasdj123kdak32
          maxLength: 500
      required:
        - name
        - value
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: API key
      type: http
      description: Clave API secreta de la empresa.

````