Integraciones y APIs: Conecta Cadences con Todo
Google, Twilio, ElevenLabs, Stripe, WhatsApp, Meta — cómo Cadences se conecta con +15 servicios externos a través de APIs REST, webhooks bidireccionales y flujos OAuth 2.0.
Gonzalo Monzón
· Fundador & CTO
Un software que no se conecta con nada es un software aislado. Cadences tiene +15 integraciones en producción — desde autenticación con Google hasta llamadas telefónicas con IA — y todas siguen los mismos principios de diseño: seguridad, fiabilidad y configuración mínima.
Filosofía de integración: En Cadences, las integraciones no se "instalan desde un marketplace". Están tejidas en el núcleo de la plataforma. Twilio no es un plugin — es el sistema de voz. ElevenLabs no es un add-on — es el motor de audio. Google no es un conector — es el sistema de auth.
Mapa de Integraciones
Este es el mapa completo de servicios externos que Cadences utiliza en producción:
| Servicio | Función | Protocolo | Auth |
|---|---|---|---|
| Google OAuth | Autenticación de usuarios | OAuth 2.0 + PKCE | Client Secret |
| Google Drive | Sync datos + backup | REST API v3 | Bearer Token |
| Google Gemini | IA generativa multi-modal | REST API | API Key |
| Twilio | Telefonía + SMS + WhatsApp | REST + WebSocket | Account SID + Token |
| ElevenLabs | Voz IA + TTS + Clonación | REST + WebSocket | API Key |
| DeepSeek | IA reasoning avanzada | OpenAI-compatible | API Key |
| OpenAI | GPT-4 + DALL·E | REST API | API Key |
| Anthropic | Claude para agentes | REST API | API Key |
| Cloudflare | Workers + D1 + R2 + DO | Edge Runtime | Wrangler Auth |
| Cloudflare Turnstile | Bot protection (CAPTCHA) | Server-side verify | Site Key + Secret |
| Meta WhatsApp | API oficial WhatsApp Business | Graph API v19 | Bearer Token |
| Unsplash | Imágenes para storefronts | REST API | Access Key |
| DICOM (interno) | Visualización médica | Workers API | Auth Header |
OAuth 2.0: El Flujo de Autenticación
Cadences utiliza Google como proveedor de identidad principal. El flujo OAuth 2.0 se implementa en dos variantes según el contexto:
Web (Storefronts)
Usa Google Identity Services (GIS) con token client. El usuario hace clic en "Login con Google", se abre un popup, y el token se valida server-side contra la lista de emails autorizados del storefront.
Desktop (Electron)
OAuth 2.0 con PKCE + Token Client. El token se almacena en IndexedDB (no localStorage). El refresh se maneja automáticamente con un callback que actualiza el AuthContext.
// Worker: Validar token de Google en el edge
async function validateGoogleAuth(request, storefrontConfig) {
const token = request.headers.get('Authorization')
?.replace('Bearer ', '');
// Verificar token con Google
const googleResponse = await fetch(
'https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=' + token
);
const googleData = await googleResponse.json();
// ¿El email está autorizado para este storefront?
const authorized = storefrontConfig
.authorizedEmails
.includes(googleData.email);
if (!authorized) {
return new Response('Unauthorized', { status: 403 });
}
return { email: googleData.email, verified: true };
} Twilio: Telefonía, SMS y WhatsApp
Twilio es el sistema nervioso de comunicaciones de Cadences. No es un simple conector — es la infraestructura que permite llamadas telefónicas con IA, envío de SMS desde workflows, y comunicación por WhatsApp Business.
Voice (Llamadas IA)
Twilio Media Streams conecta llamadas telefónicas reales con Durable Objects. El audio se procesa en tiempo real con ElevenLabs para crear conversaciones naturales con agentes IA.
SMS / MMS
Envío de mensajes desde workflows de automatización. Confirmaciones de cita, recordatorios de pago, notificaciones de envío — todo configurable como acción de workflow.
WhatsApp Business API
Dos rutas: API oficial de Meta (Graph API v19) para envíos certificados con templates, o Twilio como intermediario para un SDK unificado con SMS.
4 Proveedores de IA, 1 Interfaz
Los agentes de Cadences pueden usar cualquiera de los 4 proveedores de IA de forma intercambiable. El sistema abstrae las diferencias de API para que el usuario solo elija el modelo — todo lo demás es transparente:
Google Gemini
Provider por defecto
Multi-modal (texto, imagen, audio, video). Gemini 2.0 Flash para alta velocidad. API de Google AI Studio con soporte nativo para streaming.
DeepSeek
Reasoning avanzado
API compatible con OpenAI — se puede usar el mismo SDK cambiando el baseURL. DeepSeek R1 para razonamiento complejo a menor coste que GPT-4.
OpenAI
GPT-4 + DALL·E
El estándar de facto. Chat completions, image generation con DALL·E, y embeddings. Compatible con function calling para agentes con herramientas.
Anthropic
Claude para contextos largos
Claude 3.5 Sonnet con ventana de 200K tokens. Ideal para análisis de documentos extensos y conversaciones que requieren contexto completo.
// El agente define qué provider usar
const agent = {
name: "Analista de Ventas",
provider: "gemini", // o "deepseek", "openai", "anthropic"
model: "gemini-2.0-flash",
system_prompt: "Eres un analista de ventas experto..."
};
// El servicio de ejecución abstrae las diferencias
async function generateContent(agent, prompt) {
switch (agent.provider) {
case "gemini":
return await callGemini(agent.model, prompt);
case "deepseek":
return await callOpenAICompatible(
"https://api.deepseek.com", agent.model, prompt
);
case "openai":
return await callOpenAICompatible(
"https://api.openai.com", agent.model, prompt
);
case "anthropic":
return await callAnthropic(agent.model, prompt);
}
} Webhooks: Eventos en Tiempo Real
Los webhooks son la columna vertebral de la comunicación asíncrona en Cadences. Permiten que servicios externos notifiquen a la plataforma cuando ocurre algo, y que Cadences notifique al mundo exterior cuando se completa una acción.
← Webhooks Entrantes
- • Twilio: llamada completada, SMS recibido
- • Stripe: pago exitoso, suscripción cancelada
- • Typeform: formulario enviado
- • Calendly: cita agendada
- • GitHub: push, PR created
→ Webhooks Salientes
- • Slack: notificaciones a canales
- • Discord: alertas a servidores
- • Zapier / Make / n8n: trigger externo
- • Custom HTTP: cualquier REST API
- • Email: via SendGrid / Resend
// Worker: recibe webhook de Stripe
export async function handleStripeWebhook(request, env) {
// 1. Verificar firma del webhook
const signature = request.headers.get('stripe-signature');
const body = await request.text();
const event = verifyStripeSignature(body, signature, env.STRIPE_WEBHOOK_SECRET);
// 2. Procesar según el tipo de evento
switch (event.type) {
case 'payment_intent.succeeded':
// 3. Buscar contacto en el CRM por email
const contact = await db.prepare(
'SELECT * FROM contacts WHERE email = ?'
).bind(event.data.object.receipt_email).first();
// 4. Crear actividad en el timeline del contacto
await db.prepare('INSERT INTO activities ...').bind(
contact.id, 'payment', event.data.object.amount
).run();
// 5. Disparar workflow "Nuevo pago recibido"
await triggerWorkflow('payment-received', {
contact, amount: event.data.object.amount
});
break;
}
return new Response('OK', { status: 200 });
} Cloudflare: La Plataforma Base
Cloudflare no es "una integración más" — es la infraestructura sobre la que Cadences corre. Aquí está el stack completo:
Workers
El backend completo corre en Workers. V8 isolates, 0ms cold start, 300+ locations globales. Cada request se ejecuta en el edge más cercano al usuario.
D1 (SQLite)
Una base de datos SQLite por organización. Aislamiento total de datos sin necesidad de filtros WHERE tenant_id = ?. Consultas SQL nativas en el edge.
Durable Objects
Estado persistente con acceso exclusivo. Cada llamada de voz IA, cada sesión de chat, cada WebSocket — todo es un Durable Object con exactamente 1 instancia activa.
R2 (Object Storage)
Almacenamiento de archivos — avatares, documentos adjuntos, exports de audio — sin egress fees. Compatible con S3 API.
Pages
Hosting de storefronts estáticos. Build con Astro/Vite, deploy automático con wrangler. CDN global, HTTPS automático, preview deployments.
Patrones de Seguridad en Integraciones
Cada integración externa es un vector de ataque potencial. Cadences aplica estos patrones de seguridad en todas las integraciones:
| Patrón | Implementación | Dónde |
|---|---|---|
| Secrets en env vars | API keys en Cloudflare Secrets, nunca en código | Todas |
| Verificación de firma | HMAC-SHA256 para webhooks entrantes | Stripe, Twilio |
| Rate limiting | Límites por tier con Durable Objects | AI providers, API |
| Token rotation | Tokens de corta vida + refresh automático | Google OAuth, ElevenLabs |
| IP allowlisting | Solo IPs conocidas para webhooks críticos | Twilio, Stripe |
| Premium feature guards | APIs costosas requieren feature flag activo | Voice calls, WhatsApp |
¿Quieres integrar tu servicio?
Cadences expone una API REST completa para que puedas conectar tus propios servicios. Webhooks, API keys, OAuth — la infraestructura está lista.
Explorar la PlataformaConclusión
Las integraciones de Cadences no son conectores superficiales. Son componentes estructurales de la plataforma. Google proporciona la identidad, Twilio la voz, ElevenLabs el audio inteligente, y Cloudflare la infraestructura. Cada pieza tiene un propósito claro y está conectada con seguridad de grado producción.
Lo que hace diferente a Cadences no es la cantidad de integraciones, sino cómo están conectadas: webhooks verificados, tokens rotados, rate limits por tier, feature guards para APIs costosas, y todo ejecutándose en el edge de Cloudflare con latencia mínima.
La mejor integración es la que parece invisible.
Gonzalo Monzón
Fundador & CTO de Cadences