🔷 En este artículo se explica cómo crear una automatización que permite recibir una notificación de WhatsApp cada vez que se cree o actualice un evento en Google Calendar. Utilizando Zapier y la API Send de Whaticket, es posible enviar alertas automáticas al número configurado cuando se genere un nuevo evento en el calendario.
🟢 ¿Qué permite esta automatización?
Esta integración conecta Google Calendar con WhatsApp para enviar notificaciones automáticas cuando se crean eventos.
Cada vez que se genere o modifique un evento en el calendario, Zapier activará el flujo y enviará la información del evento a Whaticket, que enviará el mensaje de WhatsApp al número configurado.
▪️ Recibir notificaciones automáticas de eventos del calendario.
▪️ Enviar recordatorios o alertas por WhatsApp.
▪️ Automatizar la comunicación de eventos importantes.
▪️ Integrar el calendario con flujos de atención o seguimiento.
🟢 Herramientas utilizadas en esta automatización
⚙️ Google Calendar
Google Calendar es una plataforma de gestión de calendario en la nube que permite crear eventos, programar reuniones y organizar agendas.
Cuenta con una versión gratuita y con planes empresariales dentro de Google Workspace que incluyen herramientas avanzadas como calendarios compartidos, gestión de recursos e integraciones empresariales.
⚙️ Zapier
Zapier es una plataforma de automatización sin código que permite conectar diferentes aplicaciones y crear flujos de trabajo automáticos llamados Zaps.
Ofrece una prueba gratuita y planes de pago con mayor capacidad de automatización.
⚙️ API Send de Whaticket
La API Send permite enviar mensajes de WhatsApp desde integraciones externas.
▪️ Cada mensaje enviado consume créditos.
▪️ Los créditos se adquieren dentro de los planes disponibles.
▪️ Los créditos no tienen fecha de vencimiento.
🟢 Requisitos antes de comenzar
Antes de iniciar la automatización se necesita:
▪️ Tener al menos un evento creado en Google Calendar para pruebas.
▪️ Contar con una cuenta en Zapier.
▪️ Tener acceso a Whaticket con API Send habilitada.
▪️ Tener un Token de API generado en Whaticket.
▪️ Tener el ID de conexión de WhatsApp disponible en
Whaticket → Conexiones → Editar → ícono de carpeta.
🟢 Paso a paso para configurar la automatización
🔵 Integrar Google Calendar en Zapier
- Crear una automatización en Zapier
Acceder a Zapier.
Dirigirse a la sección Zaps.
Hacer clic en Create para crear una nueva automatización.
- Configurar el evento disparador
Seleccionar la aplicación Google Calendar.
Trigger Event → New or Updated Event
Conectar la cuenta de Google Calendar utilizando las credenciales correspondientes.
Hacer clic en Continue.

Configuración del Trigger Event en Zapier.
- Seleccionar el calendario
Elegir el calendario en el que se desea activar la automatización.
También es posible definir si la automatización se aplicará a:
▪️ Eventos únicos.
▪️ Eventos recurrentes.

- Probar el disparador
Zapier mostrará ejemplos de eventos del calendario.
Verificar que los campos del evento aparezcan correctamente.

🟢 Formatear los datos del evento con código
🔵 Añadir paso de código en Zapier
Agregar un nuevo paso utilizando:
App → Code
Action Event → Run Python
Este paso permite procesar los datos del evento y extraer información relevante como el número de teléfono que recibirá la notificación.

Configuración del paso Code by Zapier.
- Configurar los datos de entrada
En el campo Input Data, mapear los campos provenientes del evento de calendario, por ejemplo:
▪️ summary
▪️ description
▪️ start
▪️ end
▪️ location
▪️ creator_email

- Agregar el código Python
El siguiente código permite limpiar la descripción del evento, identificar números de teléfono dentro del contenido y preparar los datos para el envío del mensaje.
# Código para Run Python (Zapier)
# La entrada llega en el diccionario "input_data"
# Mapea en "Input Data" (ejemplos):
# summary → (Summary)
# description → (Description)
# start → (Start Date & Time)
# end → (End Date & Time)
# location → (Location)
# creator_email → (Creator Email)
import re
import html
def strip_html(s: str) -> str:
"""Elimina etiquetas HTML y normaliza entidades ( , &, etc.)."""
s = s or ""
s = re.sub(r"<[^>]+>", " ", s) # quita tags como <p>, <br>, etc.
return html.unescape(s).strip()
def only_digits(s: str) -> str:
"""Devuelve solo dígitos de una cadena (elimina espacios, +, -, paréntesis...)."""
return re.sub(r"\D+", "", s or "")
def extract_phones(text: str):
"""
Extrae candidatos a teléfono desde un texto:
- Formatos wa.me/########### o ?phone=########
- URIs tel:+######## o tel: ########
- Secuencias genéricas con separadores (espacios, guiones, paréntesis)
Filtra por longitud plausible para WhatsApp (10–15 dígitos).
"""
text = text or ""
cands = set()
# 1) wa.me/########### y parámetros ?phone=########
for m in re.findall(r"wa\.me/(\+?\d{7,16})", text, flags=re.I):
cands.add(only_digits(m))
for m in re.findall(r"[?&]phone=(\+?\d{7,16})", text, flags=re.I):
cands.add(only_digits(m))
# 2) tel:+######## o tel: ######## (con separadores)
for m in re.findall(r"tel:\s*(\+?[\d\s().-]{7,})", text, flags=re.I):
cands.add(only_digits(m))
# 3) Secuencias genéricas con dígitos y separadores
for m in re.findall(r"\+?\d[\d\s().-]{8,}\d", text):
cands.add(only_digits(m))
# Longitud típica E.164 (10–15 dígitos)
phones = [p for p in cands if 10 <= len(p) <= 15]
phones.sort(key=lambda x: len(x), reverse=True) # prioriza más largos
return phones
# ---------- Lee entradas del paso anterior ----------
summary = input_data.get("summary")
description_raw = input_data.get("description")
start_iso = input_data.get("start")
end_iso = input_data.get("end")
location = input_data.get("location")
creator_email = input_data.get("creator_email")
# Limpia la descripción (quita HTML)
description_txt = strip_html(description_raw)
# Extrae teléfonos de los campos relevantes
phones_desc = extract_phones(description_txt)
phones_summary = extract_phones(summary or "")
phones_location = extract_phones(location or "")
# Unifica y elimina duplicados preservando el orden
all_phones = []
for group in (phones_desc, phones_summary, phones_location):
for p in group:
if p not in all_phones:
all_phones.append(p)
# Mejor candidato: primero de la lista (normalmente el más completo)
phone_digits = all_phones[0] if all_phones else ""
# ---------- Salidas disponibles para los siguientes pasos ----------
return {
"summary": summary or "",
"description_text": description_txt,
"start_iso": start_iso or "",
"end_iso": end_iso or "",
"location": location or "",
"creator_email": creator_email or "",
"phone_digits": phone_digits, # número solo con dígitos (sin "+")
"phone_plus": f"+{phone_digits}" if phone_digits else "",
"all_phones": ", ".join(all_phones) # útil para debug
}

- Probar el script
Ejecutar la prueba.
En Data Out se deben mostrar los datos separados correctamente, especialmente el número de teléfono detectado.

Si los datos aparecen correctamente, continuar con el siguiente paso.
🟢 Implementación de Whaticket
🔵 Añadir acción Webhooks
Agregar un nuevo paso utilizando:
App → Webhooks by Zapier
Event → Custom Request

Configuración de Webhooks dentro del flujo de Zapier.
🔵 Configuración principal
MethodPOST
URLhttps://api.whaticket.com/api/v1/messages
Data Pass-Throughfalse

🔵 Cuerpo de la solicitud (Body)
Insertar el siguiente JSON y mapear los campos obtenidos en los pasos anteriores.
{
"whatsappId": "AQUI_VA_EL_ID_DE_TU_WHATSAPP",
"messages": [
{
"number": "telefono_limpio",
"body": "Se ha recibido un nuevo evento en el calendario"
}
]
}

🟢 Configuración adicional
Dentro de la acción configurar también:
Unflatten → Yes
Headers
Content-Type: application/json
Authorization
Bearer TU_TOKEN_DE_API_DE_WHATICKET

🟢 Probar la automatización
Hacer clic en Test.
Si la integración funciona correctamente, aparecerá una respuesta similar a:
Message messages scheduled.

Si ocurre un error, Zapier indicará qué campo debe corregirse.
🟢 Publicar la automatización
Si la prueba es exitosa, activar el flujo haciendo clic en Turn on.
A partir de ese momento:
Cada vez que se cree o modifique un evento en el calendario, se enviará automáticamente una notificación a WhatsApp.
🟢 ¿Dónde aparece el mensaje en Whaticket?
El mensaje enviado mediante la API aparecerá dentro de Whaticket como un ticket.
Si no se define una asignación específica, el ticket aparecerá inicialmente en la sección de resueltos.
También es posible revisar el historial de ejecuciones dentro de Zapier para verificar el funcionamiento de la automatización.
🟢 Recomendaciones importantes
▪️ Verificar que existan créditos disponibles en la API Send.
▪️ Confirmar que el JSON esté correctamente estructurado.
▪️ Revisar que el número de teléfono esté formateado correctamente.
▪️ Probar el flujo completo antes de activarlo en producción.
🟢 Resumen
▪️ Objetivo: recibir una notificación en WhatsApp cuando se cree un evento en Google Calendar.
▪️ Herramientas utilizadas:
Google Calendar → Python → Zapier → Whaticket API Send.
▪️ Resultado:
Cada vez que se cree o actualice un evento en el calendario, se enviará una notificación automática a WhatsApp.
Importante: Whaticket no se responsabiliza por errores de configuración, falta de créditos o costos asociados a plataformas externas utilizadas en la integración.
¿Tienes dudas adicionales? No te preocupes, estamos aquí para ayudarte. Entra en contacto con nuestro equipo presionando el botón de "Soporte" ubicado en el menú izquierdo de nuestra plataforma.















