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

# Crea una definición de herramienta NPS



## OpenAPI

````yaml /openapi-v1.es.json post /v1/nps-tools
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/nps-tools:
    post:
      tags:
        - v1 - nps-tools
      summary: Crea una definición de herramienta NPS
      operationId: V1NpsToolsController_createNpsTool
      parameters:
        - name: X-Woku-Idempotency-Key
          in: header
          description: >-
            Clave generada por el cliente para hacer que la creación sea segura
            para reintentar. Un reintento con la misma clave devuelve el
            resultado original en lugar de crear de nuevo.
          required: false
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateNpsToolBodyDTO'
      responses:
        '201':
          description: Herramienta NPS creada
        '400':
          description: Error de validación
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponseDto'
        '403':
          description: Clave de API inválida o ausente
      security:
        - bearer: []
components:
  schemas:
    CreateNpsToolBodyDTO:
      type: object
      properties:
        name:
          type: string
          description: Nombre de la herramienta para identificación.
          example: Post-Purchase Survey
          maxLength: 140
        npsMessage:
          type: string
          description: >-
            Solo la empresa, producto o servicio recomendado (p. ej. "nuestra
            empresa"), NO la pregunta completa. La pregunta pública se compone
            como "On a scale of 0 to 10, how likely are you to recommend
            {npsMessage} to {audienceType}?".
          example: our company
          minLength: 3
          maxLength: 140
        audienceType:
          type: string
          description: >-
            Solo a quién va dirigida la encuesta (p. ej. "un amigo o colega"),
            NO la pregunta completa.
          example: a friend or colleague
          maxLength: 140
        availableLocales:
          description: >-
            Configuraciones regionales en las que la tool está disponible
            (subconjunto de es/en).
          example:
            - es
            - en
          type: array
          items:
            type: string
        defaultLocale:
          type: string
          description: >-
            Configuración regional predeterminada que se usa cuando no se
            solicita ninguna.
          example: es
          enum:
            - es
            - en
        localizedContent:
          type: array
          items:
            $ref: '#/components/schemas/NpsToolLocalizedContentBodyDTO'
      required:
        - name
        - npsMessage
    ValidationErrorResponseDto:
      type: object
      properties:
        statusCode:
          type: number
          description: Código de estado HTTP
          example: 400
        message:
          description: Arreglo de mensajes de error de validación
          example:
            - email must be a valid email
            - password must be at least 8 characters
          type: array
          items:
            type: string
        error:
          type: string
          description: Tipo de error
          example: Bad Request
      required:
        - statusCode
        - message
        - error
    NpsToolLocalizedContentBodyDTO:
      type: object
      properties:
        locale:
          type: string
          enum:
            - es
            - en
          example: en
        npsMessage:
          type: string
          description: >-
            Fragmento recomendado de empresa/producto/servicio para esta
            configuración regional (p. ej. "nuestra empresa"), NO la pregunta
            completa.
          example: our company
          minLength: 3
          maxLength: 140
        audienceType:
          type: string
          description: >-
            Fragmento de audiencia para esta configuración regional, NO la
            pregunta completa.
          example: a friend or colleague
          maxLength: 140
      required:
        - locale
        - npsMessage
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: API key
      type: http
      description: Clave API secreta de la empresa.

````