widgets.comfamiliar.com

Widgets embebibles para
todos los servicios de Comfamiliar

Una línea de código para integrar encuestas de satisfacción, notificaciones y más en cualquier sitio web institucional. Sin dependencias externas.

2
Widgets activos
0 deps
Dependencias externas
<script>
Una línea de integración
CORS ✓
Multi-dominio

Widgets disponibles

Cada widget es un módulo independiente. Incluye el script y llama a dos funciones.

📋
● Live
SurveyWidget v2.0.0

Encuesta de satisfacción embebible. Modal con 3 preguntas: experiencia general (emojis 1–5), facilidad de gestión (estrellas 1–5) y NPS (1–10). Registra respuestas y abandonos. Antiduplicado por serviceId.

Endpoint: /api/survey
Script: /widgets/survey/widget.js
● Live
AccessibilityWidget v1.0.0

Menú lateral de accesibilidad. Controla tamaño de fuente, tipografía, contraste, guía de lectura, máscara, resaltado de enlaces y más. Persiste preferencias por sesión. 11 opciones configurables.

Endpoint: /api/accessibility
Script: /widgets/accessibility/widget.js
🔔
Próximamente
NotificationWidget

Banner de notificaciones institucionales. Muestra avisos, alertas y comunicados sin requerir actualización del sitio integrador.

Endpoint: /api/notification
En desarrollo
💬
Próximamente
ChatWidget

Asistente de preguntas frecuentes. Responde dudas comunes de los usuarios sobre trámites y servicios de Comfamiliar.

Endpoint: /api/chat
Planeado

Integrar en 4 pasos

El widget se incluye como un script externo. No requiere npm, bundler ni framework.

1
Registra tu aplicación

Contacta al equipo de plataforma para obtener tu appId. Identifica de forma única cada sitio integrador.

2
Incluye el script del widget

Agrega la etiqueta <script> antes del cierre de </body>. El script es IIFE, no contamina el scope global más allá del nombre del widget.

3
Inicializa con tu appId

Llama a Widget.init({ appId }) una sola vez al cargar la página, preferiblemente en el DOMContentLoaded.

4
Dispara el widget en el momento correcto

Llama a Widget.show({ serviceId }) cuando el usuario finalice un trámite o servicio. El serviceId debe ser único por transacción para evitar encuestas duplicadas.

integración-encuesta.html
HTML
JavaScript
cURL
<!-- 1. Incluir script (antes de </body>) -->
<script src="https://widgets.comfamiliar.com
  /widgets/survey/widget.js"></script>

<!-- 2. Inicializar -->
<script>
  SurveyWidget.init({
    appId:       'mi-portal',
    apiEndpoint: 'https://widgets.comfamiliar.com
                  /api/survey',
  });
</script>

serviceId único: usa el ID de la transacción o trámite (tramite-{{id}}, cita-{{id}}) para evitar que un usuario responda la misma encuesta dos veces.

Endpoints de SurveyWidget

Base URL: https://widgets.comfamiliar.com

POST
/api/survey
Body: appId, serviceId, answers{experience,ease,nps}, timestamp?, metadata?
Registrar encuesta completa
POST
/api/survey/abandon
Body: appId, serviceId, partialAnswers?, timestamp?, metadata?
Registrar abandono del modal
GET
/api/survey/stats
Query: ?appId=mi-portal — requiere X-Api-Key
Estadísticas por app
GET
/health
Sin autenticación — retorna {"status":"ok","db":"ok"}
Health check
201 Created
Encuesta registrada con éxito
400 Bad Request
Payload inválido o campos faltantes
401 Unauthorized
appId desconocido o inactivo
409 Conflict
Encuesta duplicada para ese serviceId