Skip to main content

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.

Disponible en el plan Corporate. Esta funcionalidad forma parte de las capacidades empresariales de woku. Conversa con nuestro equipo comercial.
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

npm install @wokuapp/react-native
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).
import AsyncStorage from '@react-native-async-storage/async-storage';
import { WokuSdk } from '@wokuapp/react-native';

export const woku = new WokuSdk({
  apiUrl: 'https://clientapi.woku.app',
  companyId: 'tu_company_id',
  publicKey: 'tu_public_key', // clave pública de captura por empresa
  storage: AsyncStorage,       // persiste la cola offline
});
OpciónRequeridaDescripción
apiUrlURL base de la API de woku.
companyIdEmpresa a la que pertenecen las capturas.
publicKeyClave pública de captura emitida por empresa.
storagerecomendadaAdaptador de persistencia para la cola offline.
httpnoTransporte HTTP; por defecto usa fetch.
loggernoLogger opcional.
maxQueueAttemptsnoDescarta una captura tras N intentos fallidos.

Capturar una calificación woku

const result = await woku.captureWoku({
  wokuId: 'woku_123',
  rating: 5, // entero 1..5
  comment: 'Excelente atención',
  respondent: { email: 'ana@example.com' }, // opcional
});

Capturar un NPS

await woku.captureNps({
  npsId: 'nps_1',
  score: 9, // entero 0..10
  comment: 'Lo recomendaría',
});

Comentario de audio

Ambas capturas aceptan un adjunto de audio en lugar (o además) del texto:
await woku.captureWoku({
  wokuId: 'woku_123',
  rating: 4,
  audio: { uri: 'file:///path/grabacion.m4a', mimeType: 'audio/m4a' },
});

Identificar al respondente

El feedback es anónimo salvo que envíes un identificador. Cualquiera de estos campos es opcional:
respondent: {
  email: 'ana@example.com',
  phone: '+56911111111',
  externalId: 'crm_4821', // id externo que controla tu app
}

Resultado de una captura

Cada captura devuelve un SubmissionResult con su estado:
statusSignificado
sentEntregada al servidor.
queuedSin conexión: quedó en la cola para reintentar.
quarantinedBloqueada por una regla de cuarentena de la empresa.
failedFalló y se descartó tras agotar los intentos.

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:
await woku.flush();           // intenta enviar todo lo pendiente
const pending = await woku.pendingCount();
await woku.clearQueue();      // descarta la cola (con cuidado)
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:
import {
  WokuConfigError,
  WokuValidationError,
  WokuQuarantineError,
  WokuNetworkError,
} from '@wokuapp/react-native';
  • 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.
PlataformaSoporteMínimo
AndroidCompletoAPI 24 (Android 7.0)
iOSCompletoiOS 13
La grabación de audio para comentarios usa el módulo nativo correspondiente en cada plataforma; el resto de la API es idéntico 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.
Las versiones publicadas 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 ^1.4.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.

1.4.0 a 2026-05-12

  • Soporte de comentarios de audio en NPS además de woku.
  • Nuevo campo respondent.externalId para correlacionar con sistemas propios.

1.3.1 a 2026-03-28

  • Corrección: la cola offline ya no reintenta capturas en quarantined.
  • Mejora en los reintentos con maxQueueAttempts.

1.3.0 a 2026-02-10

  • Buffer offline persistente configurable vía adaptador storage.
  • Errores tipados: WokuConfigError, WokuValidationError, WokuQuarantineError, WokuNetworkError.

1.2.0 a 2025-12-15

  • Soporte de iOS 13+ y Android API 24+.
  • Método flush() para forzar el envío de la cola pendiente.

Recursos