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

# Crear un woku mediante URL

> Crea un nuevo woku para la recoleccion de feedback usando la URL de un archivo. El archivo se descargara y procesara automaticamente. Opcionalmente, puedes asociar un correo o numero de telefono de cliente para enviar una invitacion a dejar una reseña.



## OpenAPI

````yaml /openapi.es.json post /wokus/create-woku
openapi: 3.0.3
info:
  title: Woku Client API
  description: >-
    API para integrarse con la plataforma de recoleccion de feedback de Woku.
    Esta API te permite crear wokus (herramientas de recoleccion de feedback),
    enviar reseñas y obtener reportes.


    ## Autenticacion


    Todos los endpoints requieren autenticacion mediante un token Bearer en el
    header Authorization. Puedes obtener tu API key desde el dashboard de Woku.


    ```

    Authorization: Bearer your_api_key_here

    ```


    ## Base URL


    Produccion: `https://api.woku.app`
  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: >-
      Endpoints para crear y gestionar wokus (herramientas de recoleccion de
      feedback)
  - name: Reseñas
    description: Endpoints para enviar y obtener reseñas
  - name: Empresas
    description: Endpoints para obtener datos de la empresa
  - name: Reportes
    description: Endpoints para obtener reportes de NPS y analitica
paths:
  /wokus/create-woku:
    post:
      tags:
        - Wokus
      summary: Crear un woku mediante URL
      description: >-
        Crea un nuevo woku para la recoleccion de feedback usando la URL de un
        archivo. El archivo se descargara y procesara automaticamente.
        Opcionalmente, puedes asociar un correo o numero de telefono de cliente
        para enviar una invitacion a dejar una reseña.
      operationId: createWoku
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWokuRequest'
            examples:
              basic:
                summary: Creacion basica de woku
                value:
                  description: 'Experiencia de Servicio al Cliente - Tienda #123'
                  fileUrl: https://cdn.example.com/images/product-image.jpg
              withFolder:
                summary: Woku con organizacion por carpetas
                value:
                  description: 'Experiencia de Servicio al Cliente - Tienda #123'
                  fileUrl: https://cdn.example.com/images/product-image.jpg
                  folderSecondaryKey: store-123
                  parentFolderSecondaryKey: region-north
              withClient:
                summary: Woku con cliente para invitacion a reseña
                value:
                  description: 'Experiencia de Servicio al Cliente - Tienda #123'
                  fileUrl: https://cdn.example.com/images/product-image.jpg
                  clientEmail: customer@example.com
                  clientPhone: 56912345678
      responses:
        '201':
          description: Woku creado correctamente
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WokuResponse'
        '400':
          description: Error de validacion
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '401':
          description: API key invalida o ausente
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
      security:
        - BearerAuth: []
components:
  schemas:
    CreateWokuRequest:
      type: object
      required:
        - description
        - fileUrl
      properties:
        description:
          type: string
          description: >-
            Descripcion del woku (producto, servicio o experiencia que se
            resena)
          example: 'Customer Service Experience - Store #123'
          minLength: 1
        fileUrl:
          type: string
          format: uri
          description: URL de un archivo existente (imagen o video) para asociar al woku
          example: https://cdn.example.com/images/product-image.jpg
        folderSecondaryKey:
          type: string
          description: >-
            Identificador de clave secundaria de la carpeta. Si la carpeta no
            existe, se creara automaticamente.
          example: store-123
        parentFolderSecondaryKey:
          type: string
          description: >-
            Identificador de clave secundaria de la carpeta padre. Se usa para
            crear jerarquias de carpetas.
          example: region-north
        clientEmail:
          type: string
          format: email
          description: >-
            Direccion de correo del cliente. Si se proporciona, se enviara un
            correo de invitacion a resenar.
          example: customer@example.com
        clientPhone:
          type: integer
          description: >-
            Numero de telefono del cliente (incluyendo el codigo de pais, sin
            espacios ni simbolos). Si se proporciona, se enviara una invitacion
            por WhatsApp a resenar.
          example: 56912345678
    WokuResponse:
      type: object
      properties:
        _id:
          type: string
          format: objectid
          description: Identificador unico del woku
          example: 507f1f77bcf86cd799439011
        description:
          type: string
          description: Descripcion del woku
          example: 'Customer Service Experience - Store #123'
        createdBy:
          type: string
          format: objectid
          description: ID del usuario que creo el woku
          example: 507f1f77bcf86cd799439012
        companyId:
          type: string
          format: objectid
          description: ID de la empresa a la que pertenece el woku
          example: 507f1f77bcf86cd799439013
        folderId:
          type: string
          format: objectid
          description: ID de la carpeta en la que esta organizado el woku
          example: 507f1f77bcf86cd799439014
        file:
          $ref: '#/components/schemas/WokuFile'
        qualifications:
          type: array
          items:
            $ref: '#/components/schemas/WokuQualification'
          description: Arreglo de calificaciones de estrellas
        textnotes:
          type: array
          items:
            $ref: '#/components/schemas/WokuTextnote'
          description: Arreglo de resenas de texto
        voicemails:
          type: array
          items:
            $ref: '#/components/schemas/WokuVoicemail'
          description: Arreglo de resenas de voz
        feedbacksSummary:
          type: string
          description: Resumen generado por IA de todo el feedback
          example: Customers generally praise the helpful staff and quick service...
        closed:
          type: boolean
          description: Si el woku esta cerrado para nuevas resenas
          default: false
        createdAt:
          type: string
          format: date-time
          description: Marca de tiempo de creacion
          example: '2026-01-20T10:30:00.000Z'
        updatedAt:
          type: string
          format: date-time
          description: Marca de tiempo de la ultima actualizacion
          example: '2026-01-20T15:45:00.000Z'
    ValidationError:
      type: object
      properties:
        statusCode:
          type: integer
          example: 400
        message:
          type: array
          items:
            type: string
          example:
            - description must be a string
            - fileUrl must be a valid URL
        error:
          type: string
          example: Bad Request
    UnauthorizedError:
      type: object
      properties:
        statusCode:
          type: integer
          example: 401
        message:
          type: string
          example: Invalid or missing API key
    WokuFile:
      type: object
      properties:
        filename:
          type: string
          description: Nombre del archivo
          example: product-image.webp
        type:
          type: string
          enum:
            - image
            - video
          description: Tipo del archivo
          example: image
        url:
          type: string
          format: uri
          description: URL publica del archivo
          example: https://cdn.woku.app/files/product-image.webp
    WokuQualification:
      type: object
      properties:
        _id:
          type: string
          format: objectid
          description: Identificador unico
          example: 507f1f77bcf86cd799439015
        qualification:
          type: integer
          minimum: 1
          maximum: 5
          description: Calificacion de estrellas
          example: 5
        createdBy:
          type: string
          description: Usuario o cliente que creo la calificacion
        createdAt:
          type: string
          format: date-time
          description: Marca de tiempo de creacion
    WokuTextnote:
      type: object
      properties:
        _id:
          type: string
          format: objectid
          description: Identificador unico
          example: 507f1f77bcf86cd799439016
        qualification:
          type: object
          properties:
            qualification:
              type: integer
              minimum: 1
              maximum: 5
              description: Calificacion de estrellas
              example: 5
        description:
          type: string
          description: Contenido de texto de la resena
          example: Excellent service!
        anonymous:
          type: boolean
          description: Si la resena es anonima
          example: false
        feedbackType:
          type: string
          description: Tipo de feedback clasificado por IA
          example: positive
        clientId:
          type: string
          format: objectid
          description: Cliente que envio la resena
        validated:
          type: boolean
          description: Indica si la reseña ha sido validada
          example: true
        createdAt:
          type: string
          format: date-time
          description: Marca de tiempo de creacion
    WokuVoicemail:
      type: object
      properties:
        _id:
          type: string
          format: objectid
          description: Identificador unico
          example: 507f1f77bcf86cd799439017
        qualification:
          type: object
          properties:
            qualification:
              type: integer
              minimum: 1
              maximum: 5
              description: Calificacion en estrellas
              example: 4
        file:
          type: object
          properties:
            filename:
              type: string
              description: Nombre del archivo de audio
              example: voicemail.mp4
            url:
              type: string
              format: uri
              description: URL publica del archivo de audio
        transcription:
          type: string
          description: Transcripcion del audio generada por IA
          example: I had a great experience with your service...
        anonymous:
          type: boolean
          description: Indica si la reseña es anonima
          example: false
        feedbackType:
          type: string
          description: Tipo de feedback clasificado por IA
          example: positive
        clientId:
          type: string
          format: objectid
          description: Cliente que envio la reseña
        createdAt:
          type: string
          format: date-time
          description: Marca de tiempo de creacion
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        Clave de API de la empresa. Obtenla desde tu dashboard de Woku en
        Settings > API Keys.

````