Skip to main content
Disponible en todos los planes, incluido el gratuito. Los SDK oficiales de woku están habilitados para toda cuenta. Conoce los planes.
El SDK @wokuapp/react-native permite capturar feedback desde tu app móvil: calificaciones woku (1 a 5) y NPS (0 a 10), con comentario de texto o audio. Incluye buffer offline (las capturas se encolan y se reintentan cuando hay conexión) y respeta las reglas de cuarentena de la empresa.
Además de la captura nativa, el SDK también permite compartir o incrustar el widget web de woku dentro de tu app (por ejemplo, en una vista WebView), reutilizando la misma experiencia de captura woku/NPS en canales híbridos.

Instalación

react y react-native son peer dependencies (ya presentes en tu app).

Inicialización

Crea una instancia de WokuSdk una sola vez y reutilízala. Pasa un adaptador de almacenamiento para que la cola offline persista entre sesiones (AsyncStorage o MMKV sirven directamente).

Capturar una calificación woku

Capturar un NPS

Comentario de audio

Ambas capturas aceptan un adjunto de audio en lugar (o además) del texto:

Identificar al respondente

El feedback es anónimo salvo que envíes un identificador. Cualquiera de estos campos es opcional:

Resultado de una captura

Cada captura devuelve un SubmissionResult con su estado:

Modo offline

Las capturas que no se pueden enviar se encolan automáticamente y se reintentan. Puedes forzar el envío y consultar la cola:
Un buen momento para llamar flush() es cuando la app vuelve a primer plano o cuando recuperas conectividad.

Manejo de errores

El SDK expone clases de error tipadas para distinguir las causas:
  • WokuValidationError, datos inválidos (p. ej. rating fuera de 1..5).
  • WokuQuarantineError, la captura fue bloqueada por cuarentena.
  • WokuNetworkError, fallo de red (la captura suele quedar encolada).
  • WokuConfigError, configuración incompleta al inicializar.

Plataformas

El SDK @wokuapp/react-native integra el feedback de woku en apps móviles y funciona tanto en Android como en iOS. React Native expone una única API en JavaScript/TypeScript y hace el puente a las capacidades nativas de cada plataforma, de modo que el mismo código corre en ambas.
El SDK no graba audio: para los comentarios de voz recibe un archivo ya grabado por la app (su uri y mimeType) y lo envía como multipart. La API del SDK es idéntica en Android e iOS.

Versionado

El SDK sigue versionado semántico (MAJOR.MINOR.PATCH):
  • MAJOR, cambios incompatibles en la API pública del SDK.
  • MINOR, funcionalidades nuevas compatibles hacia atrás.
  • PATCH, correcciones de errores compatibles hacia atrás.
La versión actual publicada es la 0.1.0. Las versiones y sus notas están disponibles en línea en el paquete npm y en los releases de GitHub. Te recomendamos fijar un rango compatible (por ejemplo ^0.1.0) y revisar el changelog antes de subir de versión MAJOR.

Changelog

Las entradas más recientes primero. La versión publicada cubre por igual Android e iOS.

0.1.0

Primera versión publicada del SDK:
  • Captura de calificaciones woku (1 a 5) y NPS (0 a 10), con comentario de texto o audio.
  • Cola offline persistente configurable vía adaptador storage, con flush(), pendingCount(), clearQueue() y maxQueueAttempts.
  • Campo respondent.externalId para correlacionar con sistemas propios.
  • Errores tipados: WokuConfigError, WokuValidationError, WokuQuarantineError, WokuNetworkError.
  • Entrega consciente de las reglas de cuarentena de la empresa (estado quarantined).

Recursos

Respuestas identificadas de Viajes

El token pertenece a una evaluación preparada. Envíalo en JSON o multipart, nunca en una URL. La autenticación usa x-woku-key con una clave pública pk_; las claves de gestión se rechazan. CSAT/CES admiten puntajes de 1 a 5 sin audio. El audio de Woku/NPS admite language: 'es' | 'en', español por defecto. Llama flush() al reconectar o volver a primer plano. Comparte un adaptador de almacenamiento persistente y una instancia del SDK por empresa. Lectura, envío y limpieza respetan esa empresa. Los errores permanentes, los intentos agotados y las capturas de más de 24 horas se retienen en failedCaptures() para revisión. El reloj del dispositivo determina ese plazo. El almacenamiento en memoria no sobrevive un reinicio. timeoutMs limita un intento de red, por defecto 30 segundos. timeoutMs también cubre la lectura de la respuesta. clearQueue() impide que un flush activo inicie nuevas capturas eliminadas, pero no retira un envío en curso. Una captura aceptada devuelve sent aunque falle el acuse local; su ID original queda en la cola para reconciliarlo.