Formbricks: Alternativa Open Source a Qualtrics para Gestión de Experiencias

Publicado por


formbricks
Open Source AGPLv3

Formbricks: Alternativa Open Source a Qualtrics para Gestión de Experiencias

Plataforma de encuestas autoalojable con editor sin código, segmentación avanzada y analítica integrada

Vídeo tutorial en YouTube

Mira el vídeo completo sobre cómo instalar y usar Formbricks: Alternativa Open Source a Qualtrics para Gestión de Experiencias en el canal GENBYTE:

¿Qué es Formbricks: Alternativa Open Source a Qualtrics para Gestión de Experiencias?

Formbricks es una plataforma de gestión de experiencias (XM) y encuestas de código abierto que permite recopilar feedback en cada punto del viaje del usuario. Ofrece encuestas in-app, web, por enlace y email con un editor visual sin código, plantillas de mejores prácticas y capacidades de segmentación sin modificar el código de la aplicación. El núcleo está licenciado bajo AGPLv3 y es totalmente autoalojable mediante Docker, mientras que existe una edición Enterprise con funcionalidades adicionales bajo licencia comercial. El proyecto está construido con TypeScript, Next.js, React, TailwindCSS, Prisma y Auth.js, y utiliza PostgreSQL, SpiceDB para autorización, Cube para analítica semántica y Valkey/Redis para colas y caché.

Combina encuestas in-app, web, enlace y email con segmentación en tiempo real y analítica integrada, todo autoalojable bajo AGPLv3 sin dependencia de servicios externos obligatorios.

Características principales

Editor de encuestas sin código

Crea encuestas optimizadas para conversión con múltiples tipos de pregunta mediante un editor visual intuitivo.

Plantillas de mejores prácticas

Biblioteca de plantillas listas para usar que aceleran la creación de encuestas comunes.

Segmentación y targeting avanzado

Lanza encuestas a grupos de usuarios específicos basados en atributos, eventos o comportamiento sin cambiar el código de la aplicación.

Encuestas por enlace compartible

Genera enlaces públicos para distribuir encuestas por email, redes sociales o cualquier canal.

Colaboración en equipo

Invita miembros de la organización a colaborar en el diseño y análisis de encuestas.

Integraciones nativas

Conectores para Slack, Notion, Zapier, n8n y webhooks personalizados para automatizar flujos de trabajo.

Analítica integrada (Cube)

Capa semántica Cube.js para consultas analíticas rápidas y dashboards sobre respuestas de encuestas.

Autorización granular (SpiceDB)

Modelo de permisos basado en relaciones para control de acceso a nivel de organización, workspace y encuesta.

Autoalojamiento completo con Docker

Despliegue en infraestructura propia mediante Docker Compose con todos los servicios necesarios (PostgreSQL, SpiceDB, Valkey, Cube, Hub, RustFS, MailHog).

Licencia AGPLv3 para el núcleo

Código principal libre para uso personal y comercial, con obligación de compartir modificaciones bajo la misma licencia.

Requisitos del sistema

  • Node.js >=24.0.0 <25 (versión fijada en .nvmrc y package.json)
  • pnpm 11.7.0 (gestor de paquetes obligatorio)
  • Docker y Docker Compose (para servicios de desarrollo y producción)
  • PostgreSQL 15+ (base de datos principal)
  • SpiceDB (servicio de autorización, incluido en docker-compose.dev.yml)
  • Valkey/Redis 7+ (colas BullMQ, caché, rate limiting)
  • Cube.js (API analítica, puerto 4000 en stack local)
  • Formbricks Hub (servicio de enriquecimiento IA, puerto 8080 en stack local)
  • RustFS / S3 compatible (almacenamiento de archivos, opcional en local)
  • SMTP (MailHog en desarrollo, servidor real en producción) para verificación de email y reset de contraseña

Instalación con Docker Compose

Clonar el repositorio

Obtén el código fuente desde GitHub.

git clone https://github.com/formbricks/formbricks.git
cd formbricks

Configurar variables de entorno

Copia el archivo de ejemplo y genera los secretos obligatorios (ENCRYPTION_KEY, BETTER_AUTH_SECRET, CRON_SECRET, CUBEJS_API_SECRET). El script de setup lo hace automáticamente.

cp .env.example .env
# Edita .env con tus valores o ejecuta el setup automático

Levantar stack de desarrollo con Docker Compose

Inicia todos los servicios necesarios (PostgreSQL, SpiceDB, Valkey, Cube, Hub, RustFS, MailHog) y la aplicación Next.js en modo desarrollo.

pnpm install
pnpm go
# Equivale a: pnpm db:up && pnpm dev:authzed && turbo run go –concurrency 20

Acceder a la aplicación

La interfaz web estará disponible en http://localhost:3000. Los servicios auxiliares: Cube en localhost:4000, Hub en localhost:8080, SpiceDB gRPC en localhost:50051, MailHog UI en localhost:8025.

# No se requiere comando adicional; pnpm go levanta todo

Acceder al proyecto

Interfaz web principal

http://localhost:3000 (puerto por defecto en desarrollo; configurable con WEBAPP_URL y BETTER_AUTH_URL en producción)

API analítica Cube.js

http://localhost:4000 (CUBEJS_API_URL)

Formbricks Hub (enriquecimiento IA)

http://localhost:8080 (HUB_API_URL)

SpiceDB gRPC

localhost:50051 (AUTHZED_ENDPOINT)

MailHog (captura de emails en desarrollo)

http://localhost:8025

Valkey/Redis

redis://localhost:6379 (REDIS_URL)

Casos de uso

  • Recopilar feedback in-app contextual (NPS, CSAT, CES) en aplicaciones SaaS
  • Encuestas web embebidas en sitios públicos o áreas autenticadas
  • Encuestas por enlace para investigación de mercado o validación de conceptos
  • Encuestas transaccionales por email tras eventos clave (compra, onboarding, soporte)
  • Segmentación de usuarios por comportamiento, atributos o eventos para mostrar encuestas relevantes
  • Análisis de respuestas con dashboards personalizados vía Cube.js
  • Automatización de acciones tras respuestas (Slack, webhooks, n8n, Zapier)
  • Cumplimiento de privacidad y soberanía de datos mediante autoalojamiento

Configuración avanzada

Configuración de almacenamiento S3

Para entornos serverless o producción, configura un bucket S3 compatible.

S3_ACCESS_KEY=tu_access_key
S3_SECRET_KEY=tu_secret_key
S3_REGION=us-east-1
S3_BUCKET_NAME=formbricks-uploads
S3_ENDPOINT_URL=https://s3.tu-proveedor.com # Opcional para S3 compatible
S3_FORCE_PATH_STYLE=1 # 1 para MinIO, Storj, etc.

Habilitar verificación de email y reset de contraseña

Requiere SMTP configurado. Desactiva las banderas de deshabilitación.

EMAIL_VERIFICATION_DISABLED=0
PASSWORD_RESET_DISABLED=0
SMTP_HOST=smtp.tu-proveedor.com
SMTP_PORT=587
SMTP_SECURE_ENABLED=0
SMTP_USER=tu_usuario
SMTP_PASSWORD=tu_password
[email protected]
MAIL_FROM_NAME=Formbricks

Autenticación social (OAuth)

Configura proveedores OAuth para login único.

GITHUB_ID=tu_github_client_id
GITHUB_SECRET=tu_github_client_secret
GOOGLE_CLIENT_ID=tu_google_client_id
GOOGLE_CLIENT_SECRET=tu_google_client_secret
AZUREAD_CLIENT_ID=tu_azure_client_id
AZUREAD_CLIENT_SECRET=tu_azure_client_secret
AZUREAD_TENANT_ID=tu_tenant_id

Integraciones de terceros

Claves OAuth para Notion, Slack, Google Sheets, Airtable.

NOTION_OAUTH_CLIENT_ID=tu_notion_client_id
NOTION_OAUTH_CLIENT_SECRET=tu_notion_client_secret
SLACK_CLIENT_ID=tu_slack_client_id
SLACK_CLIENT_SECRET=tu_slack_client_secret
GOOGLE_SHEETS_CLIENT_ID=tu_gsheets_client_id
GOOGLE_SHEETS_CLIENT_SECRET=tu_gsheets_client_secret
GOOGLE_SHEETS_REDIRECT_URL=https://tudominio.com/api/integrations/google-sheets/callback
AIRTABLE_CLIENT_ID=tu_airtable_client_id

Licencia Enterprise

Desbloquea funcionalidades avanzadas (gestión de roles, SSO SAML, etc.).

ENTERPRISE_LICENSE_KEY=tu_clave_enterprise

Proveedores de IA para funciones inteligentes

Configura proveedores para clasificación de sentimiento, emociones, traducción y taxonomía.

AI_PROVIDER=google
AI_MODEL=gemini-2.5-flash
AI_GOOGLE_CLOUD_PROJECT=tu_proyecto
AI_GOOGLE_CLOUD_LOCATION=europe-west3
AI_GOOGLE_CLOUD_CREDENTIALS_JSON={"type":"service_account",…}
# O proveedor openai-compatible (vLLM/Qwen local)
AI_PROVIDER=openai-compatible
AI_MODEL=qwen3-14b-awq
AI_OPENAI_COMPATIBLE_BASE_URL=http://vllm:8000/v1
AI_OPENAI_COMPATIBLE_API_KEY=dummy

Perfiles Docker Compose para servicios opcionales

Activa taxonomía IA y/o Qwen/vLLM local mediante perfiles.

docker compose -f docker-compose.dev.yml –profile taxonomy up -d
# Con Qwen/vLLM local
docker compose -f docker-compose.dev.yml –profile qwen,taxonomy up -d

Gestión y mantenimiento

Actualizar dependencias y reconstruir

Actualiza paquetes y regenera cliente Prisma si hay cambios en schema.

pnpm install
pnpm generate
pnpm build

Migraciones de base de datos

Ejecuta migraciones en desarrollo o despliegue.

# Desarrollo
pnpm db:migrate:dev
# Producción
docker compose exec web pnpm db:migrate:deploy

Gestión de secretos y rotación

Regenera claves críticas y actualiza .env. Reinicia contenedores para aplicar.

# Generar nuevos secretos
openssl rand -hex 32 # Para ENCRYPTION_KEY, BETTER_AUTH_SECRET, CRON_SECRET, CUBEJS_API_SECRET
# Actualizar .env y reiniciar
docker compose restart web

Backup de PostgreSQL

Realiza copias de seguridad periódicas de la base de datos principal.

docker exec postgres pg_dump -U postgres formbricks > backup_$(date +%F).sql
# Restaurar
docker exec -i postgres psql -U postgres formbricks < backup_2024-01-15.sql

Limpieza de recursos Docker

Elimina volúmenes y contenedores huérfanos para liberar espacio.

pnpm db:down
# O completo con volúmenes
docker compose -f docker-compose.dev.yml down -v

Monitoreo y logs

Consulta logs de la aplicación y servicios. Configura OpenTelemetry opcional.

# Logs de la app
docker compose logs -f web
# Logs de SpiceDB
docker compose logs -f spicedb
# Métricas Prometheus (si habilitado)
# PROMETHEUS_ENABLED=1
# PROMETHEUS_EXPORTER_PORT=9090

Stack técnico

  • TypeScript
  • Next.js 15 (App Router)
  • React 19
  • TailwindCSS
  • Prisma ORM
  • Auth.js (Better Auth)
  • Zod (validación)
  • Vitest (testing unitario)
  • Playwright (E2E)
  • TurboRepo (monorepo)
  • pnpm (workspace)
  • PostgreSQL 15+
  • SpiceDB (autorización Zanzibar)
  • Valkey/Redis 7 (colas, caché)
  • Cube.js (capa semántica analítica)
  • BullMQ (colas de trabajos)
  • RustFS / MinIO (almacenamiento S3 compatible)
  • MailHog (SMTP desarrollo)
  • Formbricks Hub (enriquecimiento IA)
  • Qwen/vLLM (LLM local opcional)
  • Docker / Docker Compose

Referencias oficiales

Apoya el canal GENBYTE

Sígueme en mis redes sociales

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *