B2B SaaS · Gestión de Campañas · Tecnología de Recompensas

Kehemi — B2B
Reward Campaign Platform

Una plataforma de operaciones de recompensas B2B completa, construida como WordPress MU-plugins — 78 módulos PHP que se cargan en una única secuencia de arranque orquestada en GCP. Cubre el ciclo de vida completo de un programa de recompensas corporativo: gestión de campañas en una jerarquía cliente→cuenta→campaña, pipeline de presupuestos y pedidos, aprobación de diseño con validez legal, seguimiento de envíos en tiempo real por posición de buque, soporte en seis idiomas y gestión de consultas asistida por IA a través de la Claude API. En producción desde mediados de 2026 con 96 tablas de base de datos personalizadas kh_ en GCP Cloud SQL.

Iniciar una conversación → Nuestro servicio de software personalizado

96

Tablas de Base de Datos

78

Módulos PHP

5

Monedas Compatibles

6

Idiomas Compatibles

El Reto

De la gestión de campañas a una plataforma de operaciones de recompensas B2B completa.

El encargo comenzó con la gestión de campañas en una jerarquía multicliente. Creció hasta convertirse en algo significativamente mayor: una plataforma de operaciones de recompensas B2B completa. A mediados de 2026, la plataforma gestiona el ciclo de vida completo de un programa de recompensas corporativo — desde el briefing al proveedor y el cumplimiento normativo de fábrica hasta la firma de diseño con validez legal, el seguimiento de envíos por posición de buque y la gestión de consultas asistida por IA. Con 78 módulos PHP, 96 tablas de base de datos y seis idiomas, es una de las plataformas de fidelización a medida más completas operativamente, construida sobre una arquitectura personalizada de WordPress MU-plugin.

WordPress proporciona únicamente autenticación, enrutamiento y la capa de páginas de shortcode — todos los datos de negocio residen en un espacio de nombres de tablas kh_ separado en GCP Cloud SQL, diseñado específicamente para el flujo de trabajo exacto de la agencia. Cada consulta utiliza $wpdb->prepare() y GUIDs en las URLs en lugar de IDs enteros secuenciales. La plataforma migró de Azure a Google Cloud Platform en mayo de 2026, y ahora funciona en VMs de GCP con Memorystore (Redis) para caché.

Lo Que Se Entregó

  • Panel de campañas: cuadrícula responsiva de 4 columnas con insignias de mensajes no leídos en vivo (rojo pulsante, seguimiento de lectura por usuario)
  • CRUD completo para clientes, proyectos (cuentas) y campañas — jerárquico, con archivo/restauración
  • Tres sistemas de mensajería en tiempo real independientes: chat de campaña (personal-a-cliente, adjuntos de archivos, confirmaciones de lectura), panel de presencia del personal y chat 1:1 entre personal (inyectado en todas las páginas de administración), chat de portal cliente-a-cliente (ámbito por campaña, activado por cliente)
  • Pipeline de presupuestos y pedidos: presupuestos detallados con niveles de precios, PDFs con marca generados por mPDF, envío por correo electrónico, seguimiento de aprobaciones, albaranes de recepción de mercancías e informe de pedidos de presupuesto
  • Sistema de Aprobación de Diseño (DA001): asistente de aprobación de cliente en cinco pasos, solicitudes de revisión, captura de firma dibujada o generada en lienzo a prueba de manipulaciones, hash de auditoría SHA-256, certificado de aprobación PDF descargable
  • Seguimiento de envíos y buques: posicionamiento en tiempo real de buques via AISStream.io, mapa interactivo Leaflet con icono de barco animado, marcadores de puertos, llegada estimada; fechas de salida y entrega sincronizadas mediante cron diario
  • Plataforma en seis idiomas (ML001): función kh_t() que resuelve a través de la base JSON y luego la anulación de la base de datos kh_language_strings — editable a través de la interfaz de administración sin tocar el código; EN, FR, DE, ES, NL, AR
  • Tres sistemas de IA en la Claude API: agente de consulta de base de datos en lenguaje natural para administración, agente de correo electrónico automatizado con escalada humana, ingestor de correos de briefing con ingesta de adjuntos
  • Gestión de auditorías de fábrica, informes de carbono CO₂ por pedido, ingesta de reseñas de Google Business y reportes de sentimiento, operaciones minoristas (Drops & Codes: stock, órdenes de compra, preparación y empaque)
  • 96 tablas con prefijo kh_ en GCP Cloud SQL; receptor de webhooks SendGrid que registra cada evento de entrega en kh_email_events; registro de auditoría de sesiones; bloqueo de inicio de sesión por país; registrador centralizado de errores PHP

Pila Tecnológica

WordPress como carcasa. Todo lo demás personalizado.

WordPress proporciona autenticación, enrutamiento y shortcodes. Toda la lógica de negocio, los datos y la interfaz viven en el conjunto de MU-plugins.

Carcasa CMS

WordPress MU-plugins (auto-loaded, no activation)

Lenguaje

PHP 8+

Base de Datos

MySQL 8.0 on GCP Cloud SQL kh_ prefix

Alojamiento

Google Cloud Platform (GCP VMs)

Email

SendGrid (transactional + webhook event tracking)

Imágenes

Custom kehemi_uploads/ directory (WebP optimised)

Frontend

Vanilla JS jQuery Select2 Leaflet.js Chart.js

Seguridad

WordPress nonces $wpdb->prepare() Role-based access GUIDs in URLs Country-based login blocking Session audit log

Caché

GCP Memorystore (Redis)

Generación de PDF

mPDF 8.x (via Composer)

IA

Claude API (Anthropic)

Envío y Seguimiento

ShipTheory (multi-carrier) AISStream.io (live vessel tracking)

Características Clave

Dieciocho sistemas diseñados específicamente, todos en producción.

Panel de Campañas con Insignias en Vivo

Una cuadrícula responsiva de tarjetas de 4 columnas que muestra todas las campañas a las que el usuario tiene acceso. Cada tarjeta muestra el logotipo de la campaña (o un marcador de posición de letra), la insignia de estado (Activo / Pausado / Completado / Borrador) y una insignia de conteo de mensajes no leídos de color rojo pulsante — actualizada por usuario según su marca de tiempo last_read_at. Los administradores ven todas las campañas; todos los demás roles solo ven sus campañas asignadas. El panel es el centro operativo de toda la agencia: un vistazo muestra qué campañas tienen mensajes de clientes sin leer que necesitan respuesta.

Arquitectura de Chat de Tres Sistemas

Tres sistemas de mensajería en tiempo real independientes sirven a diferentes audiencias. El chat de campaña gestiona la mensajería entre personal y cliente por campaña con adjuntos de archivos (imágenes, PDFs, documentos), confirmaciones de lectura (last_read_at por usuario) y exportación de transcripción de chat en PDF. Un panel de presencia del personal se inyecta en todas las páginas de administración, mostrando qué miembros del personal están en línea y permitiendo mensajería interna 1:1. El chat de portal cliente-a-cliente ofrece mensajería por cliente con ámbito por campaña, con adjuntos de archivos y descarga de transcripción — activado por cliente desde el personal. Cada sistema tiene sus propias tablas de mensajes, endpoint de sondeo y flujo de notificaciones.

Niveles de Precios Configurables

El personal define las regiones de precios y los puntos de corte de cantidad a través de una interfaz de administración — el sistema es completamente flexible. Una campaña puede tener niveles UK, US, APAC con puntos de corte en 50, 100, 500 unidades; otra puede tener regiones completamente diferentes. Sin columnas codificadas en el esquema de base de datos ni en la interfaz: la cuadrícula se renderiza dinámicamente a partir de las regiones y puntos de corte que se hayan definido.

Cuadrícula de Tarifas Estilo Hoja de Cálculo

La tarifa se renderiza como una cuadrícula interactiva estilo hoja de cálculo. El personal hace clic en cualquier celda para editar el precio en línea, con retroalimentación visual al guardar. Admite el modo de precio fijo (un precio por región) y el modo escalonado (el precio baja en cada punto de corte de cantidad). Los cambios se persisten mediante AJAX sin recargar la página, y la celda se resalta brevemente al guardar correctamente.

Jerarquía de Acceso Basada en Roles

Los usuarios se asignan en tres niveles: acceso al cliente, acceso al proyecto (cuenta) o acceso a la campaña. El personal interno tiene roles super_admin / manager / staff; los usuarios clientes externos tienen roles admin / user / viewer. Los menús desplegables en cascada AJAX dinámicos rellenan cuentas y campañas al asignar usuarios — seleccione un cliente y las cuentas cargan al instante; seleccione una cuenta y cargan las campañas.

Catálogo de Recompensas Multidivisa

El catálogo de productos de recompensa admite GBP, EUR, USD, AUD y CAD con almacenamiento de símbolo. Cada producto tiene un PVP más precios escalonados configurables. Los productos se asignan a campañas y los precios pueden personalizarse por campaña sin afectar al catálogo principal — así el mismo artículo de recompensa puede tener diferentes precios para una campaña UK frente a una campaña US frente a una campaña APAC, gestionados de forma independiente por la agencia para cada compromiso con el cliente.

Gestión de Presupuestos y Pedidos

El personal elabora presupuestos detallados con niveles de precios configurables, genera PDFs con marca vía mPDF y los envía a los clientes por correo electrónico directamente desde la plataforma. Los clientes aprueban o solicitan revisiones; los presupuestos confirmados se convierten en pedidos con un historial completo de seguimiento de estado. Los albaranes de recepción se registran contra los pedidos. Un informe de pedidos de presupuesto agrega datos de conversión en todas las campañas.

Sistema de Aprobación de Diseño (DA001)

Un asistente de aprobación orientado al cliente en cinco pasos con validez legal. El personal elabora pruebas de producto a través de un constructor de pruebas dedicado. Los clientes revisan cada elemento, solicitan revisiones con notas y luego dan su aprobación mediante una firma dibujada o escrita capturada en un lienzo a prueba de manipulaciones. El sistema genera un hash de auditoría SHA-256 del estado de aprobación y produce un certificado de aprobación PDF descargable. Las notificaciones por correo electrónico se activan en cada transición de etapa — prueba enviada, revisión solicitada, aprobada. El registro de aprobación es inmutable una vez firmado.

Seguimiento de Envíos y Buques

La plataforma se integra con AISStream.io para el posicionamiento de buques en tiempo real. Un panel de envíos de administración renderiza rutas de envío en tiempo real en un mapa interactivo Leaflet con un icono de barco animado, marcadores de puertos y tiempo de llegada estimado. Las fechas de salida y entrega confirmada se sincronizan automáticamente mediante un cron diario. El personal puede ver el historial de envíos, detalles del transportista y metadatos del buque por pedido.

Auditoría de Fábrica y Cumplimiento

Gestión completa de auditorías de fábrica y ética con controles de visibilidad por cliente. El personal mantiene una lista de fábricas y asigna auditorías específicas a los clientes; los clientes ven únicamente sus propios registros de auditoría. Las entradas de auditoría incluyen campos de hallazgos estructurados, estado de cumplimiento y almacenamiento de documentos. El sistema admite múltiples tipos de auditoría y almacena un historial completo por fábrica.

Plataforma en Seis Idiomas (ML001)

Un sistema multilingüe personalizado resuelve cada cadena visible para el usuario a través de una cadena de dos capas: un archivo JSON por idioma (la base) y una tabla de anulación de base de datos (kh_language_strings) editable a través de la interfaz de administración sin tocar el código. La misma función kh_t('key') se utiliza en los 78 módulos PHP. Idiomas compatibles: inglés, francés, alemán, español, neerlandés, árabe. El idioma se resuelve por sesión desde el perfil del usuario.

Seguridad y Cumplimiento de la Plataforma

Bloqueo de inicio de sesión por país con una lista de permitidos y bloqueados configurable — aplicado antes de que se ejecute la autenticación de WordPress. Cada inicio de sesión, cierre de sesión e intento fallido se escribe en un registro de auditoría de sesión con dirección IP y geolocalización. Un registrador centralizado de errores PHP captura los fallos a nivel de módulo en una tabla de base de datos con notificación al administrador. Un inicio de sesión unificado en /login/ dirige al personal, clientes y administradores a sus respectivos paneles según su rol.

Funcionalidades con IA (Claude API)

Tres sistemas de IA construidos sobre la Claude API (Anthropic). El agente de IA de administración permite al personal hacer preguntas en lenguaje natural sobre la base de datos en tiempo real y recibir respuestas estructuradas sin escribir SQL — el agente resuelve las relaciones entre tablas y da formato a los resultados. El agente de correo electrónico con IA procesa correos entrantes según un calendario, resuelve consultas de campaña o pedido automáticamente y escala a un humano cuando la confianza es baja. El ingestor de correos de briefing lee hilos de correo entrante y los analiza en briefings de campaña, incluyendo la ingesta de adjuntos en el almacén interno de documentos.

Seguimiento de Interacción de Correo Electrónico con SendGrid

Un receptor de webhooks ingesta cada evento de entrega de SendGrid — apertura, clic, rebote, informe de spam, cancelación de suscripción, aplazamiento, eliminación — y los almacena en una tabla personalizada kh_email_events con el tipo de correo electrónico de origen, referencia de campaña y destinatario. Dos paneles de administración muestran métricas de interacción y estado de entregabilidad con desglose por tipo de correo electrónico y filtrado por rango de fechas.

Informes de Carbono

Cada pedido confirmado tiene una huella de CO₂ calculada mediante factores de emisión configurables y precios del proveedor. Un panel de configuración permite al personal configurar el proveedor de carbono, el precio por tonelada y los factores de emisión a nivel de categoría de forma independiente. Los datos de carbono se almacenan por pedido en kh_order_carbon. La fase 2 — integración de la API del proveedor y un resumen de CO₂ orientado al cliente — está en la hoja de ruta.

Ingesta de Reseñas de Google y Sentimiento

Un cron diario sincroniza las reseñas de Google Business Profile en la base de datos de la plataforma a través de kh_google_reviews. Un informe de sentimiento de administración muestra calificaciones de estrellas, texto de reseñas y tendencias de sentimiento por cliente y rango de fechas. El personal puede filtrar por banda de calificación y exportar datos de reseñas. La ingesta está completamente automatizada una vez configurada con las credenciales de la API de Google Business Profile.

Operaciones Minoristas (Drops & Codes)

Una capa completa de operaciones minoristas para la subplataforma de recompensas Drops & Codes: seguimiento de movimientos de stock y panel de inventario, gestión de tasas impositivas, reglas de envío configurables por región, órdenes de compra con flujo de recepción de mercancías y cola de preparación y empaque. El personal gestiona el cumplimiento desde la creación del pedido hasta el despacho de envío dentro de la misma plataforma.

Analítica e Informes

Un panel de analítica para el personal agrega KPIs a través de los datos de campaña: tiempos de respuesta de aprobación de diseño, tasas de conversión de presupuesto a pedido, tasas de finalización de control de calidad y rendimiento de envíos a tiempo. Los informes de progreso se almacenan en la base de datos y se presentan como una página de resumen semanal orientada a la dirección. Una página de estado de la plataforma muestra una cuadrícula de disponibilidad de 90 días e historial de incidentes para transparencia con los clientes.

Arquitectura del Sistema

WordPress como capa de presentación. 96 tablas personalizadas por debajo.

WordPress (MU-plugins, GCP VM)
      kehemi-loader.php — 78 PHP modules in single boot sequence
      WordPress used only for: auth, routing, shortcodes
    
    
Data Hierarchy (96 kh_-prefixed tables on GCP Cloud SQL + Redis)

kh_clients
    └── kh_projects  (accounts / sub-brands)
            └── kh_campaigns
                    ├── kh_campaign_users    (access control)
                    ├── kh_campaign_messages (campaign chat)
                    ├── kh_quotes / kh_orders / kh_receipts
                    ├── kh_da_proofs / kh_da_approvals (design sign-off)
                    └── kh_reward_items      (products)
                            └── kh_reward_item_pricing (tiered)

Extended Platform Modules:
    ├── Shipment tracking   AISStream.io live vessel / Leaflet map
    ├── Factory audits      kh_audits / kh_factories / findings
    ├── Language system     kh_t() → JSON base → kh_language_strings
    ├── AI layer            Claude API — query / email / brief agents
    ├── SendGrid webhooks   kh_email_events (delivery tracking)
    ├── Carbon reporting    kh_carbon_factors / kh_order_carbon
    ├── Google Reviews      kh_google_reviews / daily cron
    └── Retail ops          kh_stock / kh_drops_codes / kh_fulfilment

User Access Layers:
    WordPress user account
        └── kh_users (linked by wp_user_id)
                ├── kh_client_users    → client-level access
                ├── kh_project_users   → account-level access
                └── kh_campaign_users  → campaign-level access

Espacio de Nombres de Tabla Personalizado

Todos los datos de negocio residen en tablas con prefijo kh_ en GCP Cloud SQL — completamente separadas de las tablas principales de WordPress. 96 tablas en producción a mediados de 2026. El conjunto de MU-plugins crea y migra estas tablas al cargar — sin necesidad de paso de activación.

Seguridad por Diseño

Cada consulta de base de datos utiliza $wpdb->prepare() — sin interpolación directa en ninguna parte del código. Las URLs usan GUIDs en lugar de IDs enteros secuenciales para evitar la enumeración. Todos los manejadores AJAX están protegidos con nonces de WordPress.

Arquitectura MU-Plugin

La plataforma está estructurada como 78 módulos PHP cargados automáticamente en una única secuencia de arranque por kehemi-loader.php. Sin dependencia de tema, sin activación de plugins, sin interfaz de administración de WordPress para el portal del cliente — solo páginas de shortcode mapeadas a slugs de URL personalizados, ejecutándose en VMs de GCP con caché Redis.

Tiempo Real Sin WebSockets

La interfaz de chat sondea cada 10 segundos mediante un endpoint AJAX ligero que devuelve solo los nuevos mensajes desde el último ID de mensaje conocido. El enfoque evita la complejidad de infraestructura de WebSocket al tiempo que ofrece una experiencia de usuario casi en tiempo real aceptable para la comunicación de campañas B2B.

En Números

El alcance de la plataforma de un vistazo.

96

Tablas de Base de Datos Personalizadas

78

Módulos PHP

6

Idiomas Compatibles

5

Monedas Compatibles

Trabaja con nosotros

¿Necesitas un portal B2B personalizado o un sistema de gestión de campañas?

Construimos portales a medida para agencias y empresas B2B — desde la gestión de campañas y el acceso basado en roles hasta operaciones asistidas por IA, flujos de aprobación de diseño y seguimiento de envíos en tiempo real. 78 módulos, 96 tablas, seis idiomas, todos en producción. Hablemos de lo que necesita.

Iniciar una conversación → Nuestro servicio de software personalizado