Ingestión de análisis

Zenvia Integration Worker | JavaScript

Worker de ingesta para Zenvia datos de informes de llamadas que filtra eventos de voz en conjuntos de datos listos para análisis y fuentes de paneles

Contexto del problema, stack y tipo de sistema

Este worker maneja la ingesta y el filtrado de registros de informes de comunicaciones. Se comporta como un proceso de integración de datos basado en eventos con paginación, lógica de fechas y exportaciones orientadas a análisis.

Alcance técnico

  • Stack: JavaScript, Node.js, API de Zenvia, Google Sheets API, GitHub Actions
  • Tipo de sistema: sistema de integración de APIs, pipeline de automatización, procesamiento de estilo de eventos
  • Palabras clave en contexto: procesamiento de webhook, APIs con Node.js, automatización

Arquitectura relacionada: Event-Driven Integration Service. Colección: Proyectos de integración de APIs.

Documentación completa del proyecto

Zenvia Integration Worker

Código fuente Portafolio Autor

Un servicio de worker Node.js que sincroniza los datos de las llamadas desde la plataforma de comunicación Zenvia con Google Sheets para generar informes y análisis.

Descripción general

Este worker recupera automáticamente los registros de llamadas dla API de Zenvia y los sincroniza con Google Sheets, proporcionando una vista centralizada de los datos de comunicación para las operaciones comerciales.

Características

  • Sincronización de datos de llamadas: Sincroniza automáticamente los registros de llamadas de Zenvia con Google Sheets
  • Filtrado de fechas: Filtra registros para incluir solo los datos de ayer
  • Soporte de cola: Admite informes de llamadas generales y específicos de colas
  • Actualizaciones en tiempo real: Procesa nuevos datos diariamente a través de flujos de trabajo automatizados
  • Manejo seguro de datos: Toda la información confidencial está debidamente enmascarada y protegida

Arquitectura

Componentes

  • API de Zenvia Cliente: Obtiene datos de llamadas de la plataforma de comunicación de Zenvia
  • Integración de Google Sheets: escribe datos procesados en Google Sheets
  • Procesamiento de datos: Filtra y da formato a los datos para compatibilidad con hojas de cálculo.
  • Registro seguro: Registra todas las operaciones con enmascaramiento de datos confidenciales

Flujo de datos

  1. Autenticación: Recibe el token de Google OAuth de Google Auth Worker
  2. Obtención de datos: Recupera registros de llamadas de API de Zenvia
  3. Procesamiento de datos: Filtros para registros de ayer y datos de formato.
  4. Actualización de hoja: Agrega datos procesados a Google Sheets
  5. Informes de estado: Informa el estado de ejecución al sistema de monitoreo

Configuración

Variables de entorno requeridas

GOOGLE_TOKEN=oauth_access_token_from_google_auth_worker
ZENVIA_ACCESS_TOKEN=your_zenvia_api_access_token
ZENVIA_QUEUE_ID=optional_queue_id_for_specific_queue_reports
SPREADSHEET_ID=your_google_spreadsheet_id
SHEET_NAME=your_google_sheet_name

GitHub Secretos

Se deben configurar los siguientes secretos en el repositorio GitHub:

  • GOOGLE_TOKEN: OAuth token de acceso (proporcionado por Google Auth Worker)
  • ZENVIA_ACCESS_TOKEN: API de Zenvia token de acceso
  • ZENVIA_QUEUE_ID: ID de cola opcional para informes de cola específicos
  • SPREADSHEET_ID: ID de hoja de cálculo de Google Sheets
  • SHEET_NAME: nombre de la hoja de destino dentro de la hoja de cálculo

Uso

Activación de sincronización

El worker se activa automáticamente mediante eventos de envío del repositorio desde Google Auth Worker:

{
  "event_type": "google_token_ready",
  "client_payload": {
    "token": "oauth_access_token"
  }
}

Procesamiento de datos

El worker procesa los datos de la llamada con la siguiente lógica:

  1. Filtrado de fechas: Sólo incluye registros de ayer
  2. Filtrado de colas: Si ZENVIA_QUEUE_ID se proporciona, recupera datos específicos de la cola
  3. Mapeo de datos: Asigna campos Zenvia a columnas de hoja de cálculo
  4. Procesamiento por lotes: Envía datos en lotes de 5000 filas para evitar límites de API

Campos de datos

Los siguientes campos están sincronizados con Google Sheets:

  • ID de llamada
  • Fecha/Hora (formateada para la zona horaria de Brasil)
  • Números de origen/destino
  • Información del agente
  • Estado y duración de la llamada
  • Disponibilidad de grabación
  • Motivos de desconexión

Funciones de seguridad

  • Seguridad de tokens: Los tokens OAuth se reciben de forma segura a través del envío del repositorio.
  • Enmascaramiento de datos: Toda la información confidencial está enmascarada en registros
  • Variables de entorno: Credenciales almacenadas de forma segura como variables de entorno
  • Permisos mínimos: Los flujos de trabajo GitHub Actions utilizan los permisos mínimos requeridos

Monitoreo

El estado de ejecución se informa al sistema de seguimiento central:

  • Estado de éxito/fracaso
  • Número de registros procesados
  • Marcas de tiempo de ejecución
  • Detalles del error (con datos confidenciales enmascarados)

Solución de problemas

Problemas comunes

  1. Errores de autenticación: Verificar el token de Google y el token de acceso Zenvia
  2. API Límites de tarifa: El worker incluye retrasos para evitar la limitación de tarifas
  3. Filtrado de fechas: Asegúrese de que la zona horaria del sistema esté configurada correctamente
  4. Permisos de hoja: Verificar los permisos de Google Sheets API

Registros

Todos los registros de ejecución se procesan mediante funciones de registro seguras que:

  • Enmascarar información confidencial
  • Incluir marcas de tiempo y niveles de registro
  • Reportar al sistema de monitoreo

Puntos de integración

  • Google Auth Worker: Recibe OAuth tokens
  • API de Zenvia: recupera datos de llamadas
  • Google Sheets API: escribe datos procesados
  • Monitor de operaciones en la nube: Estado de ejecución de informes

Contribuyendo

  1. Bifurcar el repositorio
  2. Crear una rama de características
  3. Haz tus cambios
  4. Agregue pruebas para sus cambios
  5. Enviar una solicitud de extracción

Licencia

Este proyecto tiene la licencia MIT (consulte la notas de licencia en el repositorio para más detalles.

Soporte

Para soporte y preguntas, comuníquese con el equipo de desarrollo.

Autor

Patrick Araujo - Ingeniero Informático
GitHub: https://github.com/PkLavc
Portafolio: https://pklavc.com/projects/


Zenvia Integration Worker - Pipeline automatizada de ingesta de datos de llamadas para análisis de comunicaciones.

GitHub Sponsors

Stack tecnológico

JavaScript
GitHub Actions
Google Sheets
API de Zenvia
Node.js

Ver el código fuente

Abrir en GitHub