Skip to main content
Disponible en todos los planes, incluido el gratuito. La API v1 y los SDK oficiales están habilitados para toda cuenta de woku. Conoce los planes.
El paquete woku es el cliente oficial de servidor para la API de gestion de woku en Python. Con un cliente síncrono (Woku) y su gemelo asíncrono (AsyncWoku) sobre httpx administras trackers externos, herramientas VoC (NPS, CSAT, CES), wokus, formularios, flows, planes de accion, tickets de soporte, envios de encuestas y seguimiento de entrega, todo sobre la API pública v1. Es la contraparte del SDK de JavaScript, con la misma superficie.
Es un SDK de servidor. La clave secreta de compañía otorga acceso completo de gestion, asi que debe vivir solo en tu backend. Nunca la incluyas en un cliente que no controles. Para capturar feedback desde una app móvil usa el SDK de React Native, que usa una clave pública de captura.

Instalación

Requiere Python 3.9 o superior. El SDK trae py.typed, asi que los type checkers reconocen sus tipos sin configuración extra.

Inicialización

Crea una instancia de Woku una sola vez y reutilízala.
Si omites api_key, el SDK lee la variable de entorno WOKU_API_KEY. Los cuerpos de solicitud aceptan un diccionario simple (como en los ejemplos) o un modelo Pydantic generado desde woku._generated.models.

Autenticación

El SDK autentica con la Clave de Compañía, la misma clave secreta que usa la API. La obtiene el propietario de la empresa desde la sección Información de la empresa en la aplicación administrativa: admin.woku.app.

Rotar o revocar la clave

Rotar genera una clave nueva e invalida de inmediato la anterior; guarda la que devuelve antes de continuar.

Quickstart

Un flujo completo: crear un tracker, crear una herramienta NPS, enviarla y leer la tasa de respuesta.

Cliente asíncrono

AsyncWoku expone los mismos recursos con métodos await e iteración con async for. Úsalo como context manager para cerrar el pool de conexiones.

Flujos principales

Tickets de soporte

Los tickets los genera la IA de woku. Puedes listarlos, filtrarlos y curarlos.

Planes de acción

Aprueba y gestiona los planes de acción dentro de woku: cambia su estado y administra sus tareas.

Paginación

Los métodos de listado devuelven una página iterable. Recorre cada elemento a través de las páginas, o página por página:
En el cliente asíncrono se recorre con async for.

Idempotencia

Los GET y las escrituras protegidas se reintentan con la misma clave: crear trackers o herramientas NPS/CSAT/CES, enviar invitaciones de los cinco tipos, y crear, inscribir, detener, generar URL o emitir eventos de Viajes. Las otras escrituras, los uploads y la rotación de secretos se intentan una sola vez. Una clave por sí sola no agrega idempotencia a un endpoint sin soporte. La deduplicación dura 24 horas. Un resultado incierto conserva su registro; verifica el resultado antes de cambiar de clave o repetir fuera de ese plazo.

Manejo de errores

Cada fallo es un WokuError. Los errores HTTP son subclases tipadas que llevan el status, el cuerpo y el request_id del servidor:
Los fallos de transporte (DNS, TLS, timeout) son WokuConnectionError y WokuTimeoutError. El SDK reintenta automáticamente los GET y las escrituras idempotentes con backoff y respeto del header Retry-After.

Configuración por llamada

Cada método acepta overrides en el argumento options:

Referencia

Referencia completa de namespaces y métodos. Para las formas exactas de request y response, consulta el API reference.

action_plans

Lee y gestiona planes de acción, incluido el kanban gestionado (tareas, conversación IA y transiciones de estado).

action_plan_groups

Gestiona los grupos de planes de acción (listar, obtener con stats, crear, actualizar, habilitar/deshabilitar y eliminar).

company

Gestiona la empresa que hace la llamada y su clave de API en /v1/companies/me.

dispatches

Seguimiento de entrega sobre los envios de invitaciones (/v1/dispatches).

flows

Acceso de solo lectura a los flujos de encuestas (/v1/flows).

forms

Lee formularios y sus respuestas, y envia invitaciones de formulario (/v1/forms).

quarantines

Verifica si un contacto esta en cuarentena (/v1/quarantines).

reports

Lee reportes NPS (/v1/reports): a nivel empresa y por herramienta NPS.

nps

Envia la encuesta NPS y lee sus respuestas (/v1/nps).

csat

Envia la encuesta CSAT y lee sus respuestas (/v1/csat).

ces

Envia la encuesta CES y lee sus respuestas (/v1/ces).

tickets

Lee y cura los tickets de soporte generados por IA (/v1/tickets).

ticket_destinations

Gestiona los destinos de tickets SAC (/v1/ticket-destinations).

trackers

Gestiona definiciones de tracker externas y asigna/quita valores de tracker en wokus y entidades VoC (/v1/external-trackers).

nps_tools

Gestiona las definiciones de herramientas NPS (/v1/nps-tools).

csat_tools

Gestiona las definiciones de herramientas CSAT (/v1/csat-tools).

ces_tools

Gestiona las definiciones de herramientas CES (/v1/ces-tools).

wokus

Gestiona los wokus (herramientas de captura) (/v1/wokus): reseñas, settings, mover de carpeta, invitaciones y compartir.

Recursos

trackers, nps_tools / csat_tools / ces_tools, nps / csat / ces, wokus, forms, flows, action_plans, action_plan_groups, tickets, ticket_destinations, dispatches, reports, company, quarantines.

Versionado

Estas mejoras se preparan para el próximo release. Consulta el changelog del paquete npm/PyPI para conocer la versión publicada antes de usar los métodos nuevos.

Recursos

Viajes y media local

El SDK de servidor expone las 17 operaciones de Viajes y un iterador de evaluaciones. Los uploads usan multipart y una respuesta generada del OpenAPI; 413 produce PayloadTooLargeError. La clave de compañía permanece en tu backend.
AsyncWoku también admite await media.upload y async for con journeys.iter_enrollments. El caller es responsable de cerrar el archivo.

journeys

Cada método también acepta opciones por llamada como último argumento. Los listados de evaluaciones devuelven { items, nextCursor }, con un límite máximo de 100 y default de 20. El endpoint separado de la tabla de Admin usa páginas de hasta 50. iter_enrollments(id, params, options) recorre las páginas por cursor bajo demanda.