Integración de Machine Learning en Snowflake con Python + Dashboard en Tableau / Looker
Vamos a agregar modelos de Machine Learning en Snowflake
Utilizando Python y luego integrar los resultados.
En Tableau o Looker para visualización.
Escenario del Proyecto
La empresa SaaS quiere predecir la probabilidad
De que un cliente cancele su suscripción Churn Prediction
Usando datos históricos de clientes almacenados en Snowflake.
Preparar datos en Snowflake con dbt.
Entrenar un modelo de Machine Learning en Python usando XGBoost.
Guardar los resultados en Snowflake.
Conectar Snowflake con Tableau/Looker para visualizar el riesgo de cancelación.
Preparación de Datos en Snowflake con dbt
Objetivo
Crear una tabla limpia con información de clientes para entrenar el modelo.
Modelo SQL en dbt models/customer_features.sql
Ejecutar el modelo en dbt
Resultado
Se crea una tabla en Snowflake
Con datos listos para Machine Learning.
Entrenar un Modelo de Machine Learning en Python (XGBoost)
Objetivo: Predecir si un cliente cancelará su suscripción.
Conectar Python con Snowflake
Instalar dependencias
Cargar Datos desde Snowflake en Python
Resultado: Se entrena un modelo con XGBoost y se obtiene la precisión.
Guardar Predicciones en Snowflake
Objetivo
Guardar la probabilidad de churn en Snowflake para su análisis en BI.
Conectar Snowflake con Tableau/Looker
Objetivo: Crear un Dashboard de Churn Prediction.
Conectar Snowflake a Tableau
Abrir Tableau y seleccionar Snowflake como fuente de datos.
Ingresar credenciales y seleccionar la tabla analytics.churn_predictions.
Crear visualizaciones:
Heatmap de probabilidad de churn.
Segmentación por gasto total y soporte recibido.
Conectar Snowflake a Looker
Configurar Snowflake en Looker
Admin > Connections > Add Connection
Crear un Modelo LookML
Diseñar un Dashboard con gráficos de riesgo de cancelación.
Resultado
El equipo de negocio puede ver clientes en riesgo.
De cancelación y tomar acciones.
| Paso | Herramienta | Resultado |
| ETL | dbt + Snowflake | Datos de clientes listos |
| ML | Python + XGBoost | Modelo de predicción |
| BI | Tableau / Looker | Dashboard interactivo |
Mejora del Modelo + Automatización con Airflow
Optimizar el modelo de predicción de churn
Agregando nuevas variables y automatizando.
El flujo de datos con Apache Airflow.
Mejora del Modelo de Machine Learning
Objetivo
Agregar nuevas variables para mejorar la precisión del modelo.
Actualmente usamos:
Gasto total del cliente
Número de logins
Número de tickets de soporte
Nuevas variables a incluir:
Días desde la última compra
Frecuencia de pagos (mensual, trimestral, anual)
Dispositivo usado (móvil, desktop, tablet)
Interacción con emails de la empresa (open rate, click rate)
Modificar dbt para incluir nuevas variables
Editar models/customer_features.sql en dbt
Ejecutar dbt para actualizar la tabla en Snowflake
Resultado:
Ahora tenemos más información predictiva para mejorar el modelo.
Reentrenamiento del Modelo XGBoost con Nuevas Variables
Objetivo
Entrenar el modelo con las nuevas variables para mejorar su precisión.
Cargar los nuevos datos en Python
Mejoras del modelo
Usamos más datos para mejorar la precisión.
Ajustamos hiperparámetros
Convertimos variables categóricas
Resultado
Un modelo más preciso y con más variables predictivas.
Automatización del Flujo con Apache Airflow
Objetivo
Automatizar el proceso de ETL + entrenamiento del modelo + carga de predicciones en Snowflake.
Instalación de Airflow
Creación de un DAG en Airflow (churn_prediction_dag.py)
Explicación
Airflow ejecuta dbt para actualizar datos en Snowflake.
Se entrena el modelo y se guardan las predicciones automáticamente.
Se programa para ejecutarse todos los días schedule_interval=’@daily’
Resultado
El modelo se actualiza automáticamente cada día con nuevos datos.
| Paso | Mejora Implementada |
| Más variables en el modelo | Días desde última compra, emails abiertos, dispositivo usado |
| Optimización de Machine Learning | XGBoost con más datos y tuning de hiperparámetros |
| Automatización con Airflow | Flujo de ETL + ML + carga de predicciones en Snowflake |
Integración de Alertas Automáticas para Churn Prediction
Vamos a integrar un sistema de alertas automáticas
Notificar cuando un cliente tenga alta probabilidad de churn.
Condición
Si un cliente tiene churn_probability > 0.8
Se enviará una notificación por email y Slack.
Automatización con Airflow
Se ejecutará todos los días después de la predicción.
Agregar una Función de Alertas en Airflow
Objetivo
Leer las predicciones de Snowflake
Enviar alertas si la probabilidad de churn es alta.
Instalar dependencias necesarias
Explicación del Flujo
Consulta en Snowflake
Se obtienen clientes con churn_probability > 0.8.
Envía email a Soporte con la lista de clientes en riesgo.
Envía notificación en Slack al canal #alertas-churn.
Se ejecuta automáticamente cada día en Airflow (schedule_interval=’@daily’).
3. Resultados
Ejemplo de Email
Asunto: Clientes en Riesgo de Churn
Ejemplo de Notificación en Slack
Se automatizó la detección de clientes en riesgo con Snowflake.
Se envían alertas automáticas a email y Slack con Airflow.
Soporte puede actuar rápidamente y evitar cancelaciones.
Integración de Alertas Automáticas con WhatsApp y CRM
Vamos a mejorar el sistema de alertas integrando.
WhatsApp y un CRM mediante webhooks.
Se enviará un mensaje automático a un número de soporte.
Cuando un cliente esté en riesgo.
CRM HubSpot, Salesforce, o cualquier otro
Se creará automáticamente un ticket de soporte
cuando un cliente tenga churn_probability > 0.8.
Configuración del Webhook para WhatsApp
Usaremos la API de Twilio WhatsApp para enviar mensajes automáticos.
Paso 1: Crear una cuenta en Twilio y obtener el API Token
Ir a Twilio Console.
Crear un número de WhatsApp.
Obtener ACCOUNT_SID, AUTH_TOKEN, y el número de WhatsApp de Twilio.
Paso 2: Instalar la librería de Twilio en Python
Paso 3: Función para Enviar WhatsApp
Integración en Airflow
Modificar el DAG de Airflow para incluir WhatsApp y CRM
Flujo Completo
| Paso | Acción |
| Detectar clientes en riesgo | Consultamos Snowflake para obtener clientes con churn > 0.8 |
| Enviar WhatsApp | Mensaje automático con lista de clientes en riesgo |
| Crear Ticket en CRM | Se genera un ticket en HubSpot con prioridad alta |
| Automatizar con Airflow | El flujo se ejecuta diariamente |
Beneficios de la Automatización
Respuestas rápidas: Soporte recibe alertas en tiempo real.
Evita cancelaciones: Se pueden contactar clientes antes de que se vayan.
Automatización total: Airflow ejecuta todo automáticamente.





