B2B SaaS · Gestione Campagne · Tecnologia Premi

Kehemi — B2B
Reward Campaign Platform

Una piattaforma completa per le operazioni di premi B2B, costruita come WordPress MU-plugins — 78 moduli PHP che si caricano in un'unica sequenza di avvio orchestrata su GCP. Copre l'intero ciclo di vita di un programma di premi aziendale: gestione delle campagne secondo una gerarchia cliente→account→campagna, pipeline di preventivi e ordini, approvazione del design con validità legale, tracciamento delle spedizioni in tempo reale tramite posizione della nave, supporto in sei lingue e gestione delle richieste assistita da IA tramite la Claude API. In produzione dalla metà del 2026 con 96 tabelle di database personalizzate kh_ su GCP Cloud SQL.

Inizia una conversazione → Il nostro servizio di software su misura

96

Tabelle del Database

78

Moduli PHP

5

Valute Supportate

6

Lingue Supportate

La Sfida

Dalla gestione delle campagne a una piattaforma completa per le operazioni di premi B2B.

Il mandato è iniziato con la gestione delle campagne all'interno di una gerarchia multi-cliente. Si è evoluto in qualcosa di significativamente più ampio: una piattaforma completa per le operazioni di premi B2B. A metà 2026, la piattaforma gestisce l'intero ciclo di vita di un programma di premi aziendale — dal brief al fornitore e dalla conformità delle fabbriche fino all'approvazione del design con validità legale, al tracciamento delle spedizioni tramite posizione della nave e alla gestione delle richieste assistita da IA. Con 78 moduli PHP, 96 tabelle di database e sei lingue, è una delle piattaforme di fidelizzazione su misura operativamente più complete, costruita su un'architettura personalizzata di WordPress MU-plugin.

WordPress fornisce soltanto autenticazione, routing e il livello delle pagine shortcode — tutti i dati aziendali risiedono in uno spazio di nomi di tabelle kh_ separato su GCP Cloud SQL, progettato appositamente per il flusso di lavoro esatto dell'agenzia. Ogni query utilizza $wpdb->prepare() e GUID negli URL al posto di ID interi sequenziali. La piattaforma è migrata da Azure a Google Cloud Platform nel maggio 2026, e ora funziona su VM GCP con Memorystore (Redis) per la memorizzazione nella cache.

Cosa È Stato Consegnato

  • Pannello campagne: griglia responsiva a 4 colonne con badge messaggi non letti in diretta (rosso pulsante, tracciamento lettura per utente)
  • CRUD completo per clienti, progetti (account) e campagne — gerarchico, con archiviazione/ripristino
  • Tre sistemi di messaggistica in tempo reale indipendenti: chat di campagna (personale-verso-cliente, allegati di file, conferme di lettura), pannello di presenza del personale e chat 1:1 tra personale (iniettato in tutte le pagine di amministrazione), chat del portale cliente-a-cliente (ambito per campagna, attivato per cliente)
  • Pipeline di preventivi e ordini: preventivi dettagliati con livelli di prezzo, PDF brandizzati generati da mPDF, invio via e-mail, monitoraggio delle approvazioni, ricevute di merci e report sugli ordini da preventivo
  • Sistema di Approvazione del Design (DA001): procedura guidata di approvazione cliente in cinque fasi, richieste di revisione, acquisizione di firma disegnata o generata su una tela a prova di manomissione, hash di audit SHA-256, certificato di approvazione PDF scaricabile
  • Tracciamento delle spedizioni e delle navi: posizionamento in tempo reale delle navi tramite AISStream.io, mappa Leaflet interattiva con icona di nave animata, indicatori di porto, arrivo stimato; date di partenza e consegna sincronizzate tramite cron giornaliero
  • Piattaforma in sei lingue (ML001): funzione kh_t() che si risolve attraverso la base JSON e poi la sostituzione del database kh_language_strings — modificabile tramite l'interfaccia amministrativa senza toccare il codice; EN, FR, DE, ES, NL, AR
  • Tre sistemi di IA sulla Claude API: agente di query del database in linguaggio naturale per l'amministrazione, agente e-mail automatizzato con escalation umana, ingestore di e-mail di brief con acquisizione degli allegati
  • Gestione degli audit di fabbrica, reporting del carbonio CO₂ per ordine, acquisizione delle recensioni di Google Business e reporting del sentiment, operazioni di vendita al dettaglio (Drops & Codes: stock, ordini di acquisto, preparazione e imballaggio)
  • 96 tabelle con prefisso kh_ su GCP Cloud SQL; ricevitore di webhook SendGrid che registra ogni evento di consegna in kh_email_events; registro di audit delle sessioni; blocco dell'accesso per paese; logger centralizzato degli errori PHP

Stack Tecnologico

WordPress come guscio. Tutto il resto su misura.

WordPress fornisce autenticazione, routing e shortcode. Tutta la logica aziendale, i dati e l'interfaccia vivono nella suite di MU-plugin.

Guscio CMS

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

Linguaggio

PHP 8+

Database

MySQL 8.0 on GCP Cloud SQL kh_ prefix

Hosting

Google Cloud Platform (GCP VMs)

E-mail

SendGrid (transactional + webhook event tracking)

Immagini

Custom kehemi_uploads/ directory (WebP optimised)

Frontend

Vanilla JS jQuery Select2 Leaflet.js Chart.js

Sicurezza

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

Cache

GCP Memorystore (Redis)

Generazione PDF

mPDF 8.x (via Composer)

IA

Claude API (Anthropic)

Spedizione e Tracciamento

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

Funzionalità Chiave

Diciotto sistemi costruiti su misura, tutti in produzione.

Pannello Campagne con Badge in Diretta

Una griglia responsiva di schede a 4 colonne che mostra tutte le campagne a cui l'utente ha accesso. Ogni scheda mostra il logo della campagna (o un segnaposto con lettera), il badge di stato (Attivo / In pausa / Completato / Bozza) e un badge di conteggio messaggi non letti rosso pulsante — aggiornato per utente in base al timestamp last_read_at. Gli amministratori vedono tutte le campagne; tutti gli altri ruoli vedono solo le campagne assegnate. Il pannello è il centro operativo dell'intera agenzia: un'occhiata mostra quali campagne hanno messaggi client non letti che richiedono risposta.

Architettura di Chat a Tre Sistemi

Tre sistemi di messaggistica in tempo reale distinti servono diversi tipi di utenti. La chat di campagna gestisce la messaggistica tra personale e cliente per campagna con allegati di file (immagini, PDF, documenti), conferme di lettura (last_read_at per utente) ed esportazione della trascrizione della chat in PDF. Un pannello di presenza del personale viene iniettato in tutte le pagine di amministrazione, mostrando quali membri del personale sono online e supportando la messaggistica interna 1:1. La chat del portale cliente-a-cliente offre messaggistica per cliente con ambito per campagna, con allegati di file e download della trascrizione — attivata per cliente dal personale. Ogni sistema dispone delle proprie tabelle di messaggi, endpoint di polling e flusso di notifiche.

Livelli di Prezzo Configurabili

Il personale definisce le regioni di prezzo e le soglie di quantità tramite un'interfaccia di amministrazione — il sistema è completamente flessibile. Una campagna potrebbe avere livelli UK, US, APAC con soglie a 50, 100, 500 unità; un'altra potrebbe avere regioni completamente diverse. Nessuna colonna codificata nello schema del database né nell'interfaccia: la griglia si renderizza dinamicamente in base alle regioni e soglie definite.

Griglia Listino Prezzi Stile Foglio di Calcolo

Il listino prezzi si renderizza come una griglia interattiva stile foglio di calcolo. Il personale clicca su qualsiasi cella per modificare il prezzo in linea, con feedback visivo al salvataggio. Supporta la modalità prezzo fisso (un prezzo per regione) e la modalità a scaglioni (il prezzo scende a ogni soglia di quantità). Le modifiche vengono salvate tramite AJAX senza ricaricare la pagina, e la cella si evidenzia brevemente al salvataggio riuscito.

Gerarchia di Accesso Basata sui Ruoli

Gli utenti sono assegnati a tre livelli: accesso cliente, accesso progetto (account) o accesso campagna. Il personale interno ha ruoli super_admin / manager / staff; gli utenti clienti esterni hanno ruoli admin / user / viewer. Menu a discesa a cascata AJAX dinamici popolano account e campagne durante l'assegnazione degli utenti — seleziona un cliente e gli account si caricano istantaneamente; seleziona un account e si caricano le campagne.

Catalogo Premi Multi-Valuta

Il catalogo prodotti premi supporta GBP, EUR, USD, AUD e CAD con memorizzazione simbolo. Ogni prodotto ha un prezzo consigliato più prezzi a scaglioni configurabili. I prodotti sono assegnati alle campagne e i prezzi possono essere personalizzati per campagna senza influire sul catalogo principale — così lo stesso articolo premio può avere prezzi diversi per una campagna UK rispetto a una campagna US rispetto a una campagna APAC, gestiti indipendentemente dall'agenzia per ogni impegno cliente.

Gestione di Preventivi e Ordini

Il personale elabora preventivi dettagliati con livelli di prezzo configurabili, genera PDF brandizzati tramite mPDF e li invia ai clienti via e-mail direttamente dalla piattaforma. I clienti approvano o richiedono revisioni; i preventivi confermati vengono convertiti in ordini con una cronologia completa di monitoraggio dello stato. Le ricevute di merci vengono registrate rispetto agli ordini. Un report sugli ordini da preventivo aggrega i dati di conversione su tutte le campagne.

Sistema di Approvazione del Design (DA001)

Una procedura guidata di approvazione orientata al cliente in cinque fasi con validità legale. Il personale elabora bozze di prodotto tramite un costruttore di prove dedicato. I clienti esaminano ogni elemento, richiedono revisioni con note, quindi approvano utilizzando una firma disegnata o digitata acquisita su una tela a prova di manomissione. Il sistema genera un hash di audit SHA-256 dello stato di approvazione e produce un certificato di approvazione PDF scaricabile. Le notifiche via e-mail vengono attivate ad ogni transizione di fase — bozza inviata, revisione richiesta, approvata. Il record di approvazione è immutabile una volta firmato.

Tracciamento delle Spedizioni e delle Navi

La piattaforma si integra con AISStream.io per il posizionamento in tempo reale delle navi. Un pannello di amministrazione delle spedizioni visualizza i percorsi di spedizione in tempo reale su una mappa Leaflet interattiva con un'icona di nave animata, indicatori di porto e orario di arrivo stimato. Le date di partenza e di consegna confermata vengono sincronizzate automaticamente tramite un cron giornaliero. Il personale può visualizzare la cronologia delle spedizioni, i dettagli del vettore e i metadati della nave per ordine.

Audit di Fabbrica e Conformità

Gestione completa degli audit di fabbrica ed etici con controlli di visibilità per cliente. Il personale mantiene un elenco di fabbriche e assegna audit specifici ai clienti; i clienti vedono solo i propri record di audit. Le voci di audit includono campi per i risultati strutturati, lo stato di conformità e l'archiviazione dei documenti. Il sistema supporta più tipi di audit e archivia una cronologia completa per fabbrica.

Piattaforma in Sei Lingue (ML001)

Un sistema multilingue personalizzato risolve ogni stringa visibile all'utente attraverso una catena a due livelli: un file JSON per lingua (la base) e una tabella di sostituzione del database (kh_language_strings) modificabile tramite l'interfaccia amministrativa senza toccare il codice. La stessa funzione kh_t('key') viene utilizzata in tutti i 78 moduli PHP. Lingue supportate: inglese, francese, tedesco, spagnolo, olandese, arabo. La lingua viene risolta per sessione dal profilo dell'utente.

Sicurezza e Conformità della Piattaforma

Blocco dell'accesso per paese con una lista di autorizzati e bloccati configurabile — applicato prima dell'esecuzione dell'autenticazione WordPress. Ogni accesso, disconnessione e tentativo fallito viene scritto in un registro di audit della sessione con indirizzo IP e geolocalizzazione. Un logger centralizzato degli errori PHP acquisisce i guasti a livello di modulo in una tabella di database con notifica all'amministratore. Un accesso unificato su /login/ instrada il personale, i clienti e gli amministratori verso i rispettivi pannelli di controllo in base al ruolo.

Funzionalità Basate sull'IA (Claude API)

Tre sistemi di IA costruiti sulla Claude API (Anthropic). L'agente IA amministrativo consente al personale di porre domande in linguaggio naturale sul database in tempo reale e ricevere risposte strutturate senza scrivere SQL — l'agente risolve le relazioni tra tabelle e formatta i risultati. L'agente e-mail IA elabora le e-mail in entrata secondo una pianificazione, risolve automaticamente le query di campagna o ordine ed esegue l'escalation a un operatore umano quando il livello di fiducia è basso. L'ingestore di e-mail di brief legge i thread di e-mail in entrata e li analizza in brief di campagna, inclusa l'acquisizione degli allegati nell'archivio documenti interno.

Tracciamento del Coinvolgimento delle E-mail SendGrid

Un ricevitore di webhook acquisisce ogni evento di consegna SendGrid — apertura, clic, rimbalzo, segnalazione spam, cancellazione dall'iscrizione, differimento, eliminazione — e li archivia in una tabella personalizzata kh_email_events con il tipo di e-mail di origine, il riferimento alla campagna e il destinatario. Due pannelli di controllo amministrativi mostrano le metriche di coinvolgimento e lo stato di recapitabilità con ripartizioni per tipo di e-mail e filtro per intervallo di date.

Reporting del Carbonio

Ogni ordine confermato ha un'impronta di CO₂ calcolata utilizzando fattori di emissione configurabili e i prezzi del fornitore. Un pannello delle impostazioni consente al personale di configurare in modo indipendente il fornitore di carbonio, il prezzo per tonnellata e i fattori di emissione a livello di categoria. I dati sul carbonio vengono archiviati per ordine in kh_order_carbon. La fase 2 — integrazione dell'API del fornitore e un riepilogo CO₂ orientato al cliente — è nella roadmap.

Acquisizione delle Recensioni Google e Analisi del Sentiment

Un cron giornaliero sincronizza le recensioni da Google Business Profile nel database della piattaforma tramite kh_google_reviews. Un report di sentiment amministrativo mostra le valutazioni a stelle, il testo delle recensioni e le tendenze del sentiment per cliente e intervallo di date. Il personale può filtrare per fascia di valutazione ed esportare i dati delle recensioni. L'acquisizione è completamente automatizzata una volta configurata con le credenziali dell'API di Google Business Profile.

Operazioni di Vendita al Dettaglio (Drops & Codes)

Un livello completo di operazioni di vendita al dettaglio per la sotto-piattaforma di premi Drops & Codes: monitoraggio dei movimenti di stock e pannello dell'inventario, gestione delle aliquote fiscali, regole di spedizione configurabili per regione, ordini di acquisto con flusso di ricevimento merci e coda di preparazione e imballaggio. Il personale gestisce l'evasione dalla creazione dell'ordine fino alla spedizione all'interno della stessa piattaforma.

Analisi e Reporting

Un pannello di analisi del personale aggrega i KPI attraverso i dati delle campagne: tempi di risposta per le approvazioni del design, tassi di conversione da preventivo a ordine, tassi di completamento del controllo qualità e performance di consegna nei tempi. I report di avanzamento vengono archiviati nel database e visualizzati come pagina di riepilogo settimanale destinata al consiglio di amministrazione. Una pagina di stato della piattaforma mostra una griglia di disponibilità di 90 giorni e la cronologia degli incidenti per la trasparenza con i clienti.

Architettura del Sistema

WordPress come interfaccia. 96 tabelle personalizzate al di sotto.

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

Spazio dei Nomi Tabelle Personalizzato

Tutti i dati aziendali risiedono in tabelle con prefisso kh_ su GCP Cloud SQL — completamente separate dalle tabelle principali di WordPress. 96 tabelle in produzione a metà 2026. La suite di MU-plugins crea e migra queste tabelle al caricamento — nessuno step di attivazione richiesto.

Sicurezza per Progettazione

Ogni query al database utilizza $wpdb->prepare() — nessuna interpolazione diretta in nessuna parte del codice. Gli URL utilizzano GUIDs invece di ID interi sequenziali per prevenire l'enumerazione. Tutti i gestori AJAX sono protetti con nonce WordPress.

Architettura MU-Plugin

La piattaforma è strutturata come 78 moduli PHP caricati automaticamente in un'unica sequenza di avvio da kehemi-loader.php. Nessuna dipendenza da tema, nessuna attivazione di plugin, nessuna interfaccia amministrativa WordPress per il portale cliente — solo pagine shortcode mappate a slug URL personalizzati, in esecuzione su VM GCP con caching Redis.

Tempo Reale Senza WebSocket

L'interfaccia chat esegue il polling ogni 10 secondi tramite un endpoint AJAX leggero che restituisce solo i nuovi messaggi dall'ultimo ID messaggio noto. L'approccio evita la complessità dell'infrastruttura WebSocket offrendo al contempo un'esperienza utente quasi in tempo reale accettabile per la comunicazione di campagne B2B.

In Numeri

La portata della piattaforma in sintesi.

96

Tabelle Database Personalizzate

78

Moduli PHP

6

Lingue Supportate

5

Valute Supportate

Lavora con noi

Hai bisogno di un portale B2B su misura o di un sistema di gestione campagne?

Costruiamo portali su misura per agenzie e aziende B2B — dalla gestione delle campagne e l'accesso basato sui ruoli fino alle operazioni assistite da IA, ai flussi di approvazione del design e al tracciamento delle spedizioni in tempo reale. 78 moduli, 96 tabelle, sei lingue, tutti in produzione. Parliamo di ciò di cui avete bisogno.

Inizia una conversazione → Il nostro servizio di software su misura