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

# Captura una puntuacion CSAT

> Envia una puntuacion de satisfaccion CSAT (1 a 5) para la empresa solicitante. El csatToolId siempre es obligatorio porque las herramientas CSAT siempre son personalizadas (especificas de la herramienta). Opcionalmente incluye el correo del encuestado, o marca el envio como anonimo. CSAT no tiene categoria de promotor, pasivo ni detractor; las metricas de satisfaccion como top-2-box se calculan por separado.



## OpenAPI

````yaml /openapi-v1.es.json post /v1/csat
openapi: 3.0.3
info:
  title: Woku Client API v1
  description: >-
    API publica de Woku Client. Cambia el selector de version en la parte
    superior para ver la referencia v0.


    Esta especificacion cubre:

    - **Wokus**, crear wokus, obtener datos de reseñas, enviar reseñas de
    texto/voz, compartir por correo.

    - **Empresas**, `GET /companies/me` devuelve la empresa que hace la llamada.

    - **Reportes**, reportes NPS a nivel de empresa y por herramienta.

    - **Trackers externos**, etiqueta tus Wokus con identificadores de sistemas
    de terceros (id de transaccion de CRM, id de orden de ERP, etc.) y buscalos
    despues.

    - **Destinos de tickets**, configura las plataformas de SAC (Zendesk,
    Salesforce, Slack), un servicio HTTP personalizado o direcciones de correo
    que reciben tickets de soporte clasificados por IA, y las condiciones de
    tracker que enrutan un ticket a uno de ellos.

    - **Grupos de planes de accion**, define que feedback de VoC (condiciones de
    tracker) redacta un plan de mejora y quien es el responsable.

    - **Planes de accion**, lee planes redactados por IA y gestiona su ciclo de
    vida (aprobar, enviar a una herramienta externa o trabajarlos en el kanban
    gestionado de woku).


    ## Autenticacion


    Todos los endpoints requieren un token Bearer en el encabezado
    `Authorization`. Obten la clave de API de tu empresa desde el panel de Woku.


    ```

    Authorization: Bearer your_api_key_here

    ```


    ## URL base


    Produccion: `https://clientapi.woku.app`


    ## Modelo (Trackers externos)


    - **Definicion de tracker** (`ExternalTracker`): una entrada del catalogo
    por empresa como `{ name: 'trr', system: 'crm interno', description: '...'
    }`. La define un administrador en el panel de Woku.

    - **Valor de tracker** (`WokuExternalTrackerValue`): un valor de tipo cadena
    asociado a un par (Woku, Tracker). Varios Wokus pueden compartir el mismo
    valor.


    ## Modelo (enrutamiento / condiciones de grupo)


    `TicketRoutingCondition` (Destinos de tickets) y `ActionPlanGroupCondition`
    (Grupos de planes de accion) comparten la misma forma: una expresion
    booleana de filas sobre valores de `ExternalTracker`, con AND ligando mas
    fuerte que OR. Cada fila coincide cuando el feedback lleva `trackerId` con
    un valor que, para el operador `equals`, es igual a `value`, o, para el
    operador `any`, es cualquier valor (el tracker completo; en ese caso `value`
    se omite). `relationToPrevious` une una fila con la anterior (`AND` mismo
    grupo, `OR` inicia un grupo nuevo); la primera fila lo omite.
  version: 1.0.0
  contact:
    name: Woku Support
    url: https://woku.app
    email: team@woku.app
servers:
  - url: https://clientapi.woku.app
    description: Servidor de produccion
security: []
tags:
  - name: Wokus
    description: >-
      Crear wokus, obtener datos de reseñas, enviar reseñas de texto y voz,
      compartir enlaces de reseñas por correo.
  - name: Empresas
    description: Endpoint de la empresa que hace la llamada.
  - name: Reportes
    description: >-
      Reportes NPS para la empresa que hace la llamada y herramientas NPS
      individuales.
  - name: NPS
    description: >-
      Captura calificaciones NPS (a nivel de empresa o por herramienta NPS) y
      obten las definiciones de herramientas NPS.
  - name: CSAT
    description: >-
      Captura calificaciones CSAT (satisfaccion 1-5) a nivel de empresa o por
      herramienta CSAT, obten definiciones de herramientas y respuestas, y envia
      feedback de texto y voz.
  - name: CES
    description: >-
      Captura calificaciones CES (esfuerzo) a nivel de empresa o por herramienta
      CES, obten definiciones de herramientas y respuestas, y envia feedback de
      texto y voz.
  - name: Trackers externos
    description: >-
      Etiqueta Wokus con identificadores de sistemas externos y buscalos por
      nombre + valor.
  - name: Cuarentenas
    description: >-
      Verifica si un encuestado esta actualmente en cuarentena antes de
      solicitarle feedback.
  - name: Invitaciones
    description: >-
      Distribucion de encuestas: envia encuestas NPS, forms e invitaciones de
      reseña de woku por correo o WhatsApp.
  - name: Forms
    description: Obten definiciones de forms y envia respuestas desde tu propia interfaz.
  - name: Flows
    description: >-
      Renderiza recorridos de Flow (wokus ordenados con un NPS opcional) en tu
      propia app.
  - name: Capturas
    description: Ingesta de capturas del SDK movil
  - name: Destinos de tickets
    description: >-
      Configura donde se entregan los tickets de soporte clasificados por IA
      (Zendesk, Salesforce, Slack, un servicio HTTP personalizado o correo
      simple) y el enrutamiento basado en trackers que elige un destino.
  - name: Grupos de planes de acción
    description: >-
      Define que feedback de VoC (condiciones de tracker) redacta un plan de
      accion y quienes son los responsables.
  - name: Planes de acción
    description: >-
      Lee planes de mejora redactados por IA y gestiona su ciclo de vida:
      aprobar, enviar a Jira/monday.com/ClickUp/Notion o trabajarlos dentro del
      kanban gestionado de woku.
paths:
  /v1/csat:
    post:
      tags:
        - CSAT
      summary: Captura una puntuacion CSAT
      description: >-
        Envia una puntuacion de satisfaccion CSAT (1 a 5) para la empresa
        solicitante. El csatToolId siempre es obligatorio porque las
        herramientas CSAT siempre son personalizadas (especificas de la
        herramienta). Opcionalmente incluye el correo del encuestado, o marca el
        envio como anonimo. CSAT no tiene categoria de promotor, pasivo ni
        detractor; las metricas de satisfaccion como top-2-box se calculan por
        separado.
      operationId: v1CreateCsat
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/V1CreateCsatRequest'
      responses:
        '201':
          description: Respuesta CSAT creada
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1CreateCsatResponse'
        '400':
          description: Error de validacion
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '403':
          description: >-
            Clave de API invalida o ausente, o la herramienta pertenece a otra
            empresa
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
      security:
        - BearerAuth: []
        - PublishableKey: []
components:
  schemas:
    V1CreateCsatRequest:
      type: object
      required:
        - score
        - csatToolId
      properties:
        responseChannel:
          type: string
          maxLength: 48
          description: >-
            Canal de respuesta entrante opcional. Por defecto es 'api'; un valor
            entregado aquí lo REEMPLAZA (canal definido por el usuario).
        score:
          type: integer
          minimum: 1
          maximum: 5
          description: Puntaje de satisfacción CSAT. 1 muy insatisfecho a 5 muy satisfecho.
          example: 4
        csatToolId:
          type: string
          pattern: ^[0-9a-fA-F]{24}$
          description: >-
            Id de herramienta CSAT. Siempre requerido porque las herramientas
            CSAT siempre son personalizadas (especificas de la herramienta).
          example: 507f1f77bcf86cd799439011
        clientEmail:
          type: string
          format: email
          description: >-
            Correo del encuestado. Omitir (o marcar anonimo) para un puntaje
            anonimo.
          example: customer@example.com
        anonymous:
          type: boolean
          description: Cuando es true, no se almacena ningun correo del encuestado.
          default: false
        dispatchToken:
          type: string
          maxLength: 64
          description: >-
            Token opaco de envio de invitacion reflejado desde el enlace
            (?dtoken=). Se consume para marcar la invitacion saliente como
            respondida; nunca se persiste.
    V1CreateCsatResponse:
      type: object
      properties:
        csatId:
          type: string
          pattern: ^[0-9a-fA-F]{24}$
          example: 507f1f77bcf86cd799439abc
        csat:
          description: >-
            La respuesta CSAT creada, con la misma forma curada que la ruta de
            lectura.
          allOf:
            - $ref: '#/components/schemas/V1CsatResponse'
    ValidationError:
      type: object
      properties:
        statusCode:
          type: integer
          example: 400
        message:
          oneOf:
            - type: string
            - type: array
              items:
                type: string
        error:
          type: string
          example: Bad Request
    ForbiddenError:
      type: object
      properties:
        statusCode:
          type: integer
          example: 403
        message:
          type: string
          example: Authentication required
        error:
          type: string
          example: Forbidden
    V1CsatResponse:
      type: object
      description: >-
        Una respuesta CSAT. Los datos de contacto del cliente nunca se incluyen;
        clientId es solo una referencia. El comentario opcional (texto o voz) se
        incluye en linea en la respuesta. CSAT no tiene categoria de
        promotor/pasivo/detractor.
      properties:
        _id:
          type: string
        score:
          type: integer
          minimum: 1
          maximum: 5
        anonymous:
          type: boolean
        csatToolId:
          type: string
          nullable: true
        clientId:
          type: string
          nullable: true
        responseChannel:
          type: string
          nullable: true
          description: >-
            Canal de respuesta entrante (whatsapp | email | review-app |
            widget-web | mobile-sdk | api, o una cadena definida por el
            usuario). Null en respuestas historicas.
        commentType:
          type: string
          nullable: true
          enum:
            - textnote
            - voicemail
            - null
          description: Que tipo de comentario esta adjunto, si lo hay.
        description:
          type: string
          nullable: true
          description: >-
            Contenido del comentario de texto (presente cuando commentType es
            'textnote').
        transcription:
          type: string
          nullable: true
          description: >-
            Transcripcion del comentario de voz (presente cuando commentType es
            'voicemail').
        feedbackType:
          type: string
          nullable: true
          enum:
            - recognition
            - improvement
            - null
          description: >-
            Clasificacion por IA del comentario. Null hasta que se clasifique o
            cuando no hay comentario.
        createdAt:
          type: string
          format: date-time
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        Clave de API de la empresa. Obtenla desde tu panel de Woku en
        Configuracion > API Keys. La misma clave usada para los endpoints v0.
    PublishableKey:
      type: apiKey
      in: header
      name: x-woku-key
      description: >-
        Clave de captura publicable (pk_…), segura para incrustar en el widget
        web publico. Aceptada solo en endpoints de captura; limitada a captura
        (no puede crear wokus, compartir ni leer reportes).

````