Crear agenteCreate agent

Documentación de API

Referencia completa de los endpoints serverless de Zentix: autenticación, CRM, agentes IA, canales, pagos, webhooks entrantes y cron jobs. Base URL: https://app.zentixchatbot.cloud

120 endpoints Firebase ID token 17 cron jobs 8 webhooks Vercel Serverless

1 Autenticación

Todo endpoint privado usa tokens de Firebase Auth. El token se envía en el header Authorization.

Authorization: Bearer <FIREBASE_ID_TOKEN>
  • El cliente obtiene el token con currentUser.getIdToken() (Firebase Auth v8).
  • El backend lo verifica con verifyIdToken en api/_auth-middleware.js y extrae el uid → aislamiento por tenant.
  • Sin token o token inválido → 401 { "error": "..." }.
  • Las acciones de administrador requieren además un custom claim de admin más un lease de sesión (_admin-access-session.js).
Nota: los tokens del panel interno (Mission Control) son independientes de este flujo. Se emiten por perfil y viajan como Bearer <MC_TOKEN> + header X-Profile. No aplican a la API pública aquí documentada.

Ejemplo de llamada autenticada

const token = await firebase.auth().currentUser.getIdToken();

const res = await fetch('/api/crm-contacts', {
  headers: { Authorization: `Bearer ${token}` }
});
const data = await res.json();

2 Convenciones

AspectoRegla
FormatoJSON en request y response (Content-Type: application/json)
Base URLhttps://app.zentixchatbot.cloud (todas las rutas bajo /api/)
ErroresHTTP status real + { "error": "mensaje" }
Códigos400 input inválido · 401 sin token · 403 prohibido · 404 · 409 conflicto · 429 rate limit · 500
MétodosLa mayoría acepta GET (lectura) y POST (acción); el body puede llevar { "action": "..." }
CORSSolo los endpoints públicos de captura permiten origen del widget embebido
IdempotenciaWebhooks y crons son re-entrantes; deduplican por ID externo
Módulos internosLos _*.js (132 archivos) no son invocables por HTTP

3 Endpoints públicos

No requieren autenticación. Usados por widgets, landings y proveedores externos.

EndpointMétodoDescripción
/api/submit-leadPOSTCaptura de lead pública (widgets, formularios, landings)
/api/submit-platform-inquiryPOSTConsulta comercial con honeypot anti-spam
/api/landing-agentPOSTChat del agente público en landings
/api/chatbot-apiGETPOSTRuntime del chatbot (intents, prompts, scoring)
/api/chatbot-landingGETPágina pública compartible de un agente
/api/scoring-servicePOSTScoring 5-pillar de leads
/api/paypal-client-idGETClient ID público para cargar el SDK de PayPal
/api/whatsapp-webhookGETPOSTVerificación (GET) y eventos (POST) de WhatsApp Cloud
/api/faviconGETFavicon SVG
/api/not-foundGETFallback 404 de la API

4 Auth y perfil de usuario

EndpointMétodoDescripción
/api/ensure-user-profilePOSTCrea/sincroniza el perfil del usuario recién autenticado (usa el token)
/api/send-welcome-emailPOSTEmail de bienvenida en el primer login (Resend)
/api/google-authPOSTInicia el OAuth de Google Calendar
/api/google-callbackGETCallback OAuth de Google
/api/google-disconnectPOSTRevoca la conexión de Google Calendar

5 Pagos y facturación

EndpointMétodoDescripción
/api/paypal-create-orderPOSTCrea la orden de PayPal del checkout
/api/paypal-capture-orderPOSTCaptura el pago aprobado
/api/paypal-webhookWEBHOOKEventos de PayPal con firma verificada
/api/billing-quoteGETPOSTCotización de plan o upgrade
/api/billing-statusGETEstado de suscripción y límites del tenant
/api/billing-reconcilePOSTConciliación de pagos vs. suscripciones

6 CRM

EndpointMétodosDescripción
/api/crm-contactsGETPATCHDELETECRUD de contactos (DELETE cubre erasure de privacidad)
/api/crm-conversationsGETPOSTDELETEConversaciones por contacto o canal
/api/crm-dealsGETPOSTPATCHDELETEPipeline de deals
/api/crm-escalationsGETPOSTEscalations y handoff a humano
/api/crm-followupsGETDELETESeguimientos pendientes
/api/crm-exportsPOSTExport CSV de datos CRM
/api/crm-action-centerGETCola de acciones sugeridas
/api/order-actionsGETPOSTAcciones de órdenes (crear, estado, cotizar)
/api/generate-quote-draftGETPOSTBorrador de cotización
/api/score-leadPOSTRe-score manual de un lead
/api/followup-alertsGETAlertas de follow-ups vencidos
/api/import-apollo-contactsPOSTImport desde Apollo (auth + autorización previa)
/api/apollo-importGETEstado/lectura de import de Apollo

7 Agentes IA

EndpointMétodoDescripción
/api/agentsGETPOSTListar y crear chatbots del usuario
/api/generate-chatbotPOSTGenera un agente (config, prompt, use-cases)
/api/agent-trainGETPOSTEntrenamiento agéntico (fuentes, snippets, estado)
/api/auto-learnPOSTAuto-aprendizaje desde scraping
/api/scrape-websitePOSTScraping de sitio para entrenamiento
/api/support-agentPOSTAgente de soporte con tools
/api/support-agent-actionsPOSTAcciones del agente de soporte
/api/agent-health-dashboardGETMétricas de salud de agentes
/api/agent-maintenancePOSTMantenimiento autónomo (dedup, integridad)
/api/workspace-agent-runsGETCorridas del agente de workspace
/api/workspace-agent-schedulesGETPOSTSchedules del agente de workspace
/api/workspace-agent-artifactsGETArtefactos generados por corridas

8 Calendario y reuniones

EndpointMétodoDescripción
/api/agenda-meetingsGETPOSTCRUD de reuniones agendadas
/api/booking-auditGETAuditoría de reservas (Twilio + Cloud)
/api/google-calendar-syncPOSTSincroniza reuniones con Google Calendar

9 Canales de mensajería

EndpointMétodoDescripción
/api/whatsapp-cloudGETPOSTIntegración WhatsApp Cloud API (envío, estado)
/api/whatsapp-cloud-setupGETPOSTCanales históricos de WhatsApp Cloud: listado y desconexión; alta directa próximamente. Para nuevas conexiones usa Twilio WhatsApp.
/api/whatsapp-integrationGETPOSTIntegración legada, ligada al tenant verificado
/api/twilio-whatsapp-setupGETPOSTCredenciales de Twilio WhatsApp
/api/twilio-whatsapp-statusGETEstado de la conexión de Twilio
/api/telegram-setupGETPOSTConfig del bot de Telegram (nunca devuelve el token)
/api/channel-healthGETSalud de rutas por canal

10 Integraciones

EndpointMétodoDescripción
/api/slack-integrationGETPOSTConexión Slack (OAuth + configuración)
/api/n8n-integrationGETPOSTConexión n8n (credenciales cifradas)
/api/firecrawl-importGETImport de Firecrawl por oleadas

11 SEO

EndpointMétodoDescripción
/api/seo-workspaceGETDatos SEO del workspace
/api/seo-portalGETPOSTPortal SEO para clientes
/api/seo-portal-syncGETSincronización del portal
/api/seo-auditPOSTAuditoría SEO
/api/seo-onpagePOSTAnálisis on-page
/api/seo-localPOSTSEO local
/api/seo-roadmap-generatorPOSTGenerador de roadmap SEO
/api/seo-monthly-reportGETPOSTReporte mensual
/api/seo-performance-syncPOSTSincronización de performance
/api/seo-billingGETPOSTFacturación del servicio SEO
/api/seo-capture-orderPOSTCaptura de orden de venta SEO

12 Workspace y notificaciones

EndpointMétodoDescripción
/api/metrics-aggregatorGETMétricas por tenant para Overview, Analytics y Sales
/api/dashboard-settingsGETPOSTPreferencias y settings del dashboard
/api/workspace-notificationsGETPOSTNotificaciones del workspace
/api/workspace-readinessGETChecklist de preparación del workspace
/api/resend-trackingWEBHOOKEventos de tracking de Resend (aperturas, clicks)
/api/send-order-status-emailRETIRADOCompatibilidad; las transiciones usan la ruta durable

13 MCP (Model Context Protocol)

Expone la API como tools MCP para asistentes de IA (Claude, ChatGPT, Cursor, Hermes). Transporte Streamable HTTP sin sesión; misma autenticación Bearer.

EndpointMétodoDescripción
/api/mcpPOSTMCP Streamable HTTP (stateless): initialize, tools/list y tools/call con las 7 tools de Zentix. 401 sin token.
Guía completa de conexión (Claude Desktop, Cursor, stdio local, escrituras con recibo) en la página Servidor MCP. Escrituras acotadas a agenda_meeting_create con idempotencia; solo lectura por defecto.

14 Admin

Requieren custom claim de admin más lease de sesión. Sirven al Admin Control Center.

EndpointMétodoDescripción
/api/admin-authPOSTVerificación de sesión admin (claims + lease)
/api/admin-overviewGETResumen global de la plataforma
/api/admin-usersGETGestión de usuarios
/api/admin-leadsGETTodos los leads (cross-tenant)
/api/admin-agentsGETTodos los agentes
/api/admin-analyticsGETAnalytics global
/api/admin-paymentsGETPagos globales
/api/admin-healthGETSalud de la plataforma
/api/admin-actionsGETPOSTAcciones administrativas (revoca leases, etc.)
/api/admin-reset-crm-systemPOSTReset del sistema CRM — peligroso
/api/admin-reset-test-dataPOSTBulk-delete de datos de prueba

15 Cron jobs

Invocados por Vercel Cron con CRON_SECRET. Sin sesión de usuario. Frecuencias exactas de vercel.json.

EndpointScheduleDescripción
/api/cron-workspace-agentcada 2 minCorridas agénticas programadas
/api/cron-crm-action-centercada 2 minRefresca la cola de acciones sugeridas
/api/cron-crm-ingestion-repaircada 2 minRepara la ingesta de CRM
/api/cron-workflow-outboxcada 2 minOutbox de workflows (integraciones Google)
/api/cron-channel-route-healthcada 5 minSalud de rutas por canal
/api/cron-auto-analyzecada 10 minSelección de tareas ejecutables (leases, defers)
/api/cron-crm-followupscada 10 minFollow-ups de CRM
/api/send-meeting-reminderscada 10 minRecordatorios de reunión
/api/retry-failed-notificationscada 30 minRetry acotado de emails fallidos
/api/cron-crm-retentionhorario (:15)Retención y limpieza
/api/cron-firecrawl-importdiario 02:00Consumidor de la cola de Firecrawl
/api/cron-maintenancediario 06:00Integridad de datos para todos los usuarios
/api/cron-revenue-attributionlunes 06:00Atribución lead→deal→order→payment
/api/send-onboarding-dripdiario 09:30Drip de onboarding Day 1/3/7
/api/send-followup-remindersdiario 10:00Recordatorios de follow-up
/api/send-weekly-digestlunes 09:00Digest semanal de actividad
/api/send-agent-health-alertsdomingo 08:00Alertas de agentes inactivos
Interno: estos endpoints no son públicos. No publiques sus schedules ni el CRON_SECRET. Registrados en código pero sin schedule activo: cron-canonical-crm-migration, cron-recalculate-scores.

16 Webhooks entrantes

Llamados por terceros hacia Zentix. Todos verifican firma o secret antes de procesar.

EndpointFuenteDescripción
/api/whatsapp-webhookMetaVerificación GET + eventos POST de WhatsApp Cloud
/api/twilio-whatsapp-webhookTwilioMensajes entrantes de WhatsApp vía Twilio
/api/telegram-webhookTelegramUpdates del bot
/api/slack-webhookSlackEvents API
/api/paypal-webhookPayPalPagos, disputas, suscripciones
/api/resend-inboundResendEmail entrante (parse)
/api/resend-inbound-routesResendConfig de rutas inbound
/api/webhook-intent-handlerinternoEnrutador de intents multi-canal

Ejemplo: verificación GET de WhatsApp Cloud

GET /api/whatsapp-webhook
  ?hub.mode=subscribe
  &hub.verify_token=<VERIFY_TOKEN>
  &hub.challenge=<CHALLENGE>

// Respuesta esperada: 200 con el valor de hub.challenge

17 Firestore directo

El frontend autenticado lee y escribe directo en estas colecciones (reglas en firebase-security-rules.txt).

userschatbotsleads dealsordersmeetings conversationsconversation_eventsescalations followup_alertspayment_linkstelegram_leads whatsapp_leadschatbot_config_audit
Conviven el acceso directo (legacy) y el acceso vía endpoints serverless. La dirección del proyecto es centralizar las escrituras en la API; las reglas de Firestore restringen por request.auth.uid.

18 Mapa: qué página llama a qué

Página / áreaLlamadas API
Landing, features, pricing, contacto, soluciones, blog (ES+EN)landing-agent (widget), submit-lead (formularios). El resto es estático.
/loginFirebase Auth (Google, Facebook, email) → luego ensure-user-profile y send-welcome-email
/checkoutSDK de PayPal + paypal-create-order, paypal-capture-order, billing-quote, billing-status
/dashboard (legacy)CRM completo, canales, calendario, agentes, pagos y settings (~40 endpoints)
/workspace (Zentix 2.0)39 endpoints del workspace agéntico
/admin-dashboardadmin-auth más lecturas y acciones de admin
Widget embebido (cliente)chatbot-api, submit-lead
Página pública de agentechatbot-landing, chatbot-api
Clientes MCP (Claude, ChatGPT, Cursor, Hermes)mcp (tools sobre CRM, agenda, agentes y métricas)

Documentación relacionada

Documentación externa de proveedores

Sin resultados para tu búsqueda. Prueba con otro término (por ejemplo: crm, paypal, cron).