Vai al contenuto
megapromotingParliamone

Competenza · Agenti vocali

Un agente che parla — nella sua pagina e al telefono — e che può essere interrotto.

Costruiamo agenti vocali su Kallina: ruolo scritto, base di conoscenze approvata, strumenti che richiamano durante la conversazione e un limite oltre il quale passano la discussione a un umano. Il romeno è la lingua predefinita dei nuovi agenti.

Già costruitoTre implementazioni proprie, citate di seguito. (1) La piattaforma Kallina — 472 funzioni edge Deno e 559 migrazioni di database, contate oggi nel repository; `https://app.kallina.info` risponde 200. (2) Il componente su questo sito, `src/components/agents/KallinaVoiceAgent.tsx`, che implementa il corretto percorso di sessione e documenta le due modalità in cui un voice agent fallisce in silenzio. (3) Il bridge `elevenlabs-bridge` e la sessione `openai-realtime-session`, dove si trovano i parametri reali di interruzione e di rilevamento del parlato. La riserva che diciamo: la parte telefonica dipende da un host SIP, e l’host attraverso cui passano le nostre linee di test non risponde alla data della stesura — veda la pagina di telefonia. Sul web, il percorso è verificabile oggi.

Un agente vocale, da noi, non è «un bot che legge un copione». Ha quattro cose scritte prima della prima chiamata: un ruolo, una base di conoscenze approvata da lei, un insieme di strumenti che è autorizzato a chiamare, e un limite oltre il quale passa la conversazione a un essere umano. Ciò che esce dalla conversazione non è solo un transcript: la chiamata ha durata, costo suddiviso per fornitore, registrazione e analisi, tutti collegati al conto dell’azienda.

Il motore non è uno solo, e questa è una decisione, non un accidente. Nella configurazione dell’agente sceglie tra ElevenLabs Conversational AI, OpenAI Realtime e Gemini Live, oppure lascia «auto» e la piattaforma sceglie in base a lingua, carico e disponibilità. Sopra di esso sceglie separatamente il cervello testuale, da un catalogo in cui ogni modello ha la latenza e il costo al minuto mostrati nell’interfaccia. Quando qualcuno chiede «perché risponde lentamente», la risposta ha cifre, non opinioni.

La parte che le persone percepiscono di più è l’interruzione. Su OpenAI Realtime, il rilevamento del parlato è semantico, con soglia 0,5, un cuscino di 300 ms prima e 500 ms di silenzio per considerare che abbia finito di parlare; l’interruttore «permetti interruzioni» è attivo per impostazione predefinita. Su ElevenLabs, l’evento di interruzione viene inoltrato alla centrale telefonica, per fermare immediatamente la riproduzione. E il tempo dopo il quale l’agente considera che il suo silenzio sia una risposta è configurabile per agente — su un agente di vendita scritto da noi è ristretto a 12 secondi, rispetto ai 15 predefiniti.

L’agente vive in due luoghi diversi, con vincoli diversi. Nella pagina web entra con una sola riga di script o con un componente proprio, e la regola d’oro è che la pagina non conserva mai l’identificatore dell’agente né alcuna chiave del fornitore — chiede alla piattaforma una sessione e riceve un URL firmato, di breve durata. Al telefono entra tramite un trunk SIP, e lì i vincoli sono quelli dell’operatore e della centrale, non dell’agente; su questo scriviamo separatamente, nella pagina di telefonia.

Agenti vocali AI nella Repubblica di Moldova — come funzionano, concretamente · video in rumeno, con sottotitoli e trascrizione in italiano

La trascrizione completa

Bene, andiamo subito al punto. Oggi facciamo un’analisi tecnica estremamente precisa di come gli agenti vocali funzionano davvero nell’ambiente di business. Ci baseremo esclusivamente sull’architettura della piattaforma Kallina, sviluppata proprio nella Repubblica di Moldova, da MEGA PROMOTING S.R.L.. Niente linguaggio di marketing, niente promesse gonfiate, solo fatti, pura infrastruttura e, ovviamente, realtà operativa. Per qualsiasi team che guida un’azienda e si basa su processi chiari, capire la tecnologia sotto il cofano è, sinceramente, assolutamente essenziale. Oggi abbiamo un percorso molto metodico. Passiamo attraverso sei punti. Prima affrontiamo il problema, poi il meccanismo di funzionamento, seguono l’anatomia di un guasto, la sezione motori e interruzioni, i limiti tecnici e, infine, il passo successivo. È uno sguardo totalmente trasparente sul sistema. Dunque, la prima sezione, il problema, il tempo e le richieste.

Vediamo esattamente da dove partiamo. Questa è proprio la domanda che non lascia dormire la notte i responsabili delle operazioni. Dove si perde esattamente il tempo operativo e, molto importante, quante richieste non verificate spariscono ogni giorno. In un’azienda normale, il tempo semplicemente svanisce tra chiamate perse, richieste che non vengono prese in carico in tempo e tutta una serie di interazioni che, beh, semplicemente non possono essere verificate in seguito. E non è solo un piccolo problema di disagio. Parliamo di una risorsa operativa enorme che si perde giorno dopo giorno in un flusso di lavoro non ottimizzato. Passiamo alla seconda parte, il meccanismo, come funziona. Entriamo nell’ingegneria vera e propria della piattaforma. Guardate un po’ questo numero, 472.

Questo è il numero esatto di funzioni Edge nuove che tengono in piedi la piattaforma in questo momento. Quindi, chiaramente, non stiamo parlando di un prototipo del fine settimana o di una bella interfaccia di facciata. È una massiccia infrastruttura su un server reale, pensata per gestire rotte e logiche di business estremamente complesse. E, per sottolineare il livello di maturità, ci sono esattamente 559 migrazioni del database sull’infrastruttura PostgreSQL, ospitata tramite Supabase. Questi numeri ci mostrano una base supersolida, con politiche di sicurezza implementate a livello di riga. In pratica, è un sistema costruito per scalare e per mantenere i dati in un ordine impeccabile. Ora, guardate come appare l’ordine delle operazioni su un agente web, perché questo dettaglio è assolutamente geniale.

Al passo 1, la pagina richiede l’accesso al microfono. Al passo 2, il visitatore deve accettare. E solo al passo 3 viene inviata una richiesta al server per aprire una sessione, ricevendo indietro un URL firmato valido solo per un breve periodo. Perché questa è una mossa strategica così importante? Semplice, se al passo 2 il microfono viene rifiutato, il sistema non va avanti. Matematicamente questo significa 0 minuti consumati e 0 soldi buttati dalla finestra per sessioni fantasma. La sezione 3 è probabilmente la mia preferita. L’anatomia di un guasto. Perché niente costruisce più fiducia della trasparenza totale, no? Immaginatevi questa situazione da incubo. È stato implementato un agente vocale su una pagina web, ma quando premevate il pulsante non succedeva assolutamente nulla.

Nessun suono, nessun messaggio di avvertimento, nessun errore nella console degli sviluppatori. Silenzio completo. Per chiunque, anche per un tecnico esperto, un difetto del genere sembrava impossibile da localizzare a prima vista. Perché? Perché non esisteva alcun log di errore. Un guasto completamente silenzioso. Quando si è scavato più a fondo, l’analisi tecnica ha portato alla luce due nemici completamente invisibili. Innanzitutto, il server inviava un header che vietava completamente l’uso del microfono. Il browser, essendo obbediente, rispettava la regola e rifiutava la richiesta, ma lo faceva senza avvisare l’interfaccia visiva. In secondo luogo, una componente vocale veniva importata staticamente nella pagina. Il file semplicemente non veniva trovato, restituendo un errore 404. Per colpa di questo, l’intero script crollava in background, in silenzio, bloccando qualsiasi configurazione successiva.

Ma guardate quanto elegante è stata la soluzione. Il problema, ovviamente, non era nell’AI, ma direttamente nella rete. Si è modificato l’header del server per consentire il microfono dalla propria origine, vedete lì, nello stato riparato, e si è spostata l’importazione del codice esattamente all’interno dell’azione di pressione del pulsante. Il difetto è sparito completamente. Ora, se qualcuno preme il pulsante e il microfono è bloccato dal browser, il guasto non è più silenzioso. Appare all’istante un messaggio chiaro in lingua romena che spiega esattamente cosa bisogna cambiare. Questo significa ingegneria fatta con la testa, eliminando del tutto le spiacevoli sorprese. Andiamo avanti alla quarta sezione, motori, lingue e interruzioni. È il momento di esaminare esattamente di cosa è capace questo sistema.

Qui lasciamo da parte le opinioni soggettive e parliamo solo in millisecondi. Quando usate il modello Flash, di ElevenLabs, la latenza è di appena 75 millisecondi. Per darvi un’idea, per l’orecchio umano, è praticamente istantaneo. D’altra parte, se preferite una qualità vocale assolutamente premium, come quella offerta dal modello Turbo, la latenza arriva a circa 250 millisecondi. In una conversazione telefonica, ogni millisecondo è critico, e la piattaforma vi permette di scegliere esattamente quale motore volete, strettamente in base alle esigenze operative dell’azienda. Una domanda super frequente che sentiamo è: bene, ma posso interrompere l’agente mentre parla? La risposta è un sì fermo, solo che il meccanismo è diverso. Per esempio, su OpenAI Realtime, il rilevamento è semantico. Ha una soglia fissata a 0.5 e un margine di sicurezza tecnico di 300 millisecondi.

Invece, per ElevenLabs, nell’istante in cui interviene un’interruzione, un evento parte direttamente verso la centrale telefonica, il sistema PBX, per tagliare istantaneamente il suono. Inoltre, il periodo di silenzio che l’agente aspetta prima di rispondere a sua volta può essere regolato in modo molto preciso. Può essere, per esempio, ridotto a 12 secondi invece del valore predefinito di 15, il che rende la conversazione molto più naturale e pronta. Dal punto di vista delle lingue supportate, la configurazione ufficiale dell’agente gestisce con successo 32 lingue diverse. Ma, un aspetto operativo di massima importanza per noi qui? La lingua romena è impostata di default per assolutamente tutti i nuovi agenti creati su questa piattaforma. Siamo arrivati alla quinta sezione, limiti tecnici e responsabilità, perché, a volte, è altrettanto importante sapere cosa un sistema non può fare, per avere le aspettative corrette.

Tracciamo una linea molto chiara. L’agente può eseguire funzioni esterne, può attivare strumenti interni direttamente sul server e può trasferire la chiamata a un collega umano senza alcun problema. Ma il sistema vieta agli agenti di improvvisare in settori strettamente regolamentati. Pensateci un attimo. Un agente che inizia a improvvisare dove la normativa è estremamente rigida diventa un rischio enorme per l’azienda, in nessun caso un vantaggio. Inoltre, cose come l’esecuzione automatica delle cancellazioni dei dati a un determinato termine non sono semplicemente delle spunte in un menu. Esse rappresentano progetti procedurali separati che devono essere implementati in modo dedicato dall’organizzazione. La sicurezza, d’altra parte, è trattata con assoluta rigorosità. Le pagine web che ospitano gli agenti ricevono esclusivamente quell’URL firmato di cui parlavamo.

Non ricevono mai, ma assolutamente mai, un ID agente o una chiave API che potrebbero essere rubati e usati a spese dell’azienda. Sul fronte voce, la telefonia dipende al 100% da un trunk SIP esterno funzionante e, per essere il più trasparenti possibile riguardo ai limiti attuali, le linee esterne SIP di test non rispondono in questo momento. È un approccio estremamente sincero da parte degli ingegneri, che dimostra che la realtà tecnica viene sempre prima di tutto, al di là di qualsiasi discussione commerciale. Ed eccoci alla sesta sezione, l’ultima, tra l’altro, il passo successivo nel processo. Che facciamo dopo con tutte queste informazioni? Tutta questa disamina tecnica dovrebbe portarci a una valutazione super oggettiva dei vostri flussi di lavoro.

Questa è la vera posta in gioco. Quale processo operativo all’interno dell’organizzazione ha davvero bisogno di funzionare in modo più efficiente? Non implementiamo l’intelligenza artificiale solo per il gusto di essere alla moda, giusto? L’obiettivo è identificare quel punto esatto, logico, in cui un voice agent può integrarsi in modo razionale, può scalare e può funzionare in condizioni di massima sicurezza. Come punto finale, qui avete le coordinate operative della società MEGA PROMOTING S.R.L. di Chișinău, inclusi IDNO e indirizzo web? Questo per un eventuale confronto strettamente tecnico, volto a chiarire come queste strutture complesse possano integrarsi nei sistemi che già utilizzate nella vostra attività. Prima di qualsiasi decisione, lascerei una domanda provocatoria su cui riflettere tutti. I processi attuali di gestione dei clienti nelle nostre aziende resisterebbero davvero a un’analisi tecnica dura e trasparente come quella a cui è stato sottoposto questo sistema? In un mercato definito dall’innovazione costante, uno sguardo basato esclusivamente su fatti e cifre rimane di gran lunga lo strumento più potente che abbiamo a disposizione. Alla prossima!

Cosa comprende

Il lavoro, per componenti

La sessione si richiede alla piattaforma, non al fornitore vocale

La pagina invia `POST /functions/v1/widget-voice-session` con l’identificatore pubblico del widget e riceve indietro un URL firmato. Non ha mai l’identificatore dell’agente né alcuna chiave. La variante sbagliata — `startSession({ agentId })` direttamente in HTML — aggira completamente lo strato di sessione, di credito e di log della piattaforma, ed espone l’agente a chiunque apra il sorgente della pagina. È la prima verifica che facciamo su ogni implementazione che prendiamo in carico.

Il microfono si richiede prima della sessione, quindi un rifiuto non costa nulla

L’ordine è fisso e conta: richieda il microfono con `getUserMedia({audio:true})`, e solo se la persona accetta richieda la sessione. Se il visitatore rifiuta, non viene emesso alcun URL firmato e non si consuma alcun minuto. La richiesta del microfono si fa all’interno della pressione del pulsante, prima di qualsiasi attesa che possa superare il gesto — altrimenti il browser ignora la richiesta.

L’agente può essere interrotto, e questo si regola con numeri

Su OpenAI Realtime: rilevamento semantico del parlato, soglia 0,5, cuscino 300 ms, 500 ms di silenzio, interruzione consentita per impostazione predefinita. Su ElevenLabs: l’evento `interruption` viene trasmesso alla centrale per tagliare la riproduzione. Oltre a ciò, `turn_timeout` per agente decide dopo quanto tempo di silenzio l’agente considera che sia il suo turno — per impostazione predefinita 15 secondi, ristretto a 12 su un agente di vendita. E un «non riesco a interromperlo» segnalato da un cliente ha, spesso, un’altra causa rispetto alle soglie: risposte troppo lunghe. Quella la risolviamo nel prompt e nel limite dei token, non nel rilevamento del parlato.

Chiama strumenti durante la conversazione

L’agente non è chiuso in ciò che sa. Può chiamare funzioni sul server mentre parla — per leggere una disponibilità, scrivere un appuntamento, inviare un SMS o interrogare un catalogo. Gli strumenti sono dichiarati per agente, con parametri tipizzati e un proprio timeout di esecuzione, così che uno strumento lento non blocchi la conversazione.

La presa in carico da parte di un operatore è parte dello сценарio, non un’eccezione

Nella messaggistica, il passaggio a un collega ha uno stato proprio sul thread — `handoff_status`, il momento della presa in carico, il motivo, chi è assegnato, le note di risoluzione — implementato in un modulo dedicato di 619 righe. Al telefono, il trasferimento viene fatto dal centralino: trasferimento cieco tramite `##` e trasferimento assistito tramite `*2`, con la chiamata che arriva in un contesto di dialplan scritto per questo. Sono due meccanismi diversi perché sono due canali diversi; li scriviamo entrambi nello scenario.

Il motore e la voce si scelgono esplicitamente, non implicitamente

Quattro posizioni di fornitore: `elevenlabs`, `openai-realtime`, `gemini-live` e `auto`. Per la sintesi vocale in lingue diverse dall’inglese, il valore predefinito è `eleven_flash_v2_5` — 32 lingue, circa 75 ms; la variante di qualità superiore, `eleven_turbo_v2_5`, è intorno ai 250 ms. Su OpenAI Realtime ci sono dieci voci e motori fino a `gpt-realtime-2.1`. La scelta è un campo nella configurazione dell’agente, non un’ipotesi da parte nostra.

Lingue

La configurazione dell’agente accetta 32 lingue, la mappa interna delle lingue della piattaforma ha 41 voci, e il pannello di amministrazione è tradotto in 20. Sono tre cifre per tre cose diverse e non si possono confondere. Il romeno è la lingua predefinita di un nuovo agente.

Ciò che rimane dopo la chiamata

Trascrizione, registrazione audio, durata, costo suddiviso per fornitore, più un’analisi post-chiamata e un breve riepilogo della conversazione, generato per la memoria del cliente. L’analisi non è un fine in sé: su di essa si basa la decisione se l’agente ha fatto ciò che doveva o se lo scenario ha una lacuna.

Il consumo si verifica prima dell’azione, non in fattura

Prima di qualsiasi operazione che costa, la piattaforma verifica il credito disponibile, e il consumo viene registrato ripartito per fornitore e per agente. Il gate sta prima della chiamata. In pratica: un agente finito in un ciclo non può consumare all’infinito senza urtare un limite.

Come si presenta

Il percorso, passo dopo passo.

01

Scegliamo un solo percorso e ne scriviamo i margini

Uno scenario con ingresso chiaro e uscita chiara: chiamata ricevuta alla reception, conferma d’ordine, verifica di disponibilità. Scriviamo esplicitamente cosa l’agente non è autorizzato a fare, cosa non è autorizzato a dire e attraverso quale percorso passa la discussione a una persona. Un agente senza confini scritti non è più capace, è solo più imprevedibile.

02

Costruiamo l’agente: ruolo, conoscenze, strumenti, limiti

Il prompt, la base di conoscenza approvata da voi, gli strumenti che può chiamare e le soglie di conversazione — fornitore, voce, modello testuale, tempo di silenzio, comportamento all’interruzione. Alla fine abbiamo un agente configurato, non un demo.

03

Lo mettiamo sul canale e verifichiamo il percorso senza consumare minuti

Sul web: una riga di script o una componente propria sopra l’API di avvio e arresto. Esiste uno script che percorre esattamente il cammino di un browser — la riga nella configurazione, la configurazione del widget, la richiesta di sessione — e si ferma all’URL firmato, senza aprire la connessione audio. Funziona su un widget o su tutti, restituisce un codice di uscita, quindi può entrare in una verifica programmata. Al telefono: il numero entra nel trunk, e le chiamate in entrata e quelle in uscita si testano separatamente, perché si rompono separatamente.

04

Misuriamo ciò che è uscito e correggiamo lo scenario

Dopo le prime conversazioni reali leggiamo le trascrizioni e l’analisi post-chiamata, non le impressioni. Ciò che correggiamo più spesso non è il modello, ma la lunghezza delle risposte e i confini dello scenario — due cose che si modificano nel prompt, nello stesso giorno.

IntrareVerificareDeciziePublicareNulla va oltre senza essere verificato.L’ORDINE È L’ARGOMENTO
Il percorso di una conversazione: la pagina richiede il microfono, la piattaforma emette una sessione firmata, l'agente parla e può essere interrotto, richiama uno strumento, e ciò che supera il suo ruolo passa a una persona.

I dati

Cosa tocchiamo, dove risiedono e quanto rimangono

Le domande che pone chiunque abbia un responsabile della protezione dei dati — poste qui prima che le ponga lui.

Dove stanno i dati
PostgreSQL tramite Supabase ospitato su infrastruttura propria, con 559 migrazioni versionate, di cui 195 toccano policy di Row Level Security. I file — registrazioni, documenti di conoscenza, campioni di voce — stanno in archivi separati, con il percorso che inizia con l’identificatore dello spazio di lavoro, affinché l’isolamento sia nella struttura, non solo nella query.
Ciò che non arriva mai nella sua pagina
La chiave del fornitore vocale e l’identificatore dell’agente. La pagina riceve solo un URL firmato, di breve durata, emesso dalla piattaforma. Conseguenza pratica: chi legge il sorgente della sua pagina non può usare il suo agente a sue spese.
Ciò che viene registrato da una chiamata
Audio, trascrizione, durata, numero del chiamante, esito della chiamata e analisi successiva. Per i casi in cui l’agente ricorda il cliente tra una chiamata e l’altra, viene salvato anche un breve riepilogo della conversazione precedente. Tutto è collegato a un’area di lavoro; non esiste un deposito comune tra clienti.
La cancellazione su richiesta esiste; la cancellazione automatica alla scadenza ancora no
Lo diciamo così com’è, perché è la differenza tra una promessa e una funzione. La cancellazione su richiesta è implementata: una funzione dedicata elimina gli oggetti dal deposito di file, richiama la procedura di cancellazione nel database e invalida le sessioni; esistono separatamente l’esportazione dei dati e una funzione per i dati delle chiamate. Ciò che non è implementato: i termini di conservazione configurabili per area di lavoro. Sono progettati in un documento interno di aprile, ma la colonna di configurazione non compare in alcuna migrazione — quindi oggi la cancellazione alla scadenza avviene tramite procedura, non tramite orologio. Se il suo progetto ha bisogno della cancellazione automatica, questa entra come lavoro, non come impostazione.
Chi viene informato che sta parlando con un agente
L’avviso che l’interlocutore sta parlando con un sistema automatizzato, il fondamento della registrazione della conversazione e il testo letto all’inizio della chiamata vengono stabiliti insieme a lei ed entrano nello сценарio. Non sono un’impostazione tecnica: sono una decisione del titolare del trattamento, cioè sua.

Un caso

Il pulsante che non faceva nulla — e non dava nemmeno errore

La situazione

Un agente vocale inserito in una pagina web. Alla pressione non succedeva assolutamente nulla: nessun suono, nessun messaggio, nessun errore in console che un non iniziato potesse vedere. Il tipo di difetto che viene segnalato come “non funziona” e cercato per un giorno nel posto sbagliato.

Cosa abbiamo costruito

Le cause erano due, entrambe silenziose per loro natura. Prima: l’header `Permissions-Policy` del server conteneva `microphone=()`, e il browser rifiuta la richiesta del microfono senza sollevare nulla di visibile per l’utente. Seconda: l’SDK vocale era importato staticamente, e un modulo che restituisce 404 all’import statico fa crollare l’intero script — quindi anche la richiesta di configurazione moriva insieme ad esso, il che faceva apparire il difetto esattamente come «non è successo nulla». Ho spostato l’import dell’SDK all’interno della pressione del pulsante, ho messo la richiesta del microfono prima della richiesta di sessione e ho scritto l’header del server come `microphone=(self)`, con la content security policy che consente esplicitamente la rete di distribuzione dell’SDK.

Cosa è emerso

Oggi, su questo sito, l’header servito in produzione è `camera=(), microphone=(self), geolocation=(self)`, e la content security policy elenca esplicitamente la fonte dell’SDK. Un fallimento non è più silenzioso: il rifiuto del microfono produce un messaggio in lingua romena che dice esattamente cosa va cambiato, e il rifiuto non costa nulla, perché la sessione non viene nemmeno richiesta.

Cosa non dice il caso

Le due cause sono di infrastruttura, non dell’agente. Se il suo sito è servito da qualcun altro e gli header non sono sotto il nostro controllo, la loro verifica diventa una condizione iniziale del lavoro, non una sorpresa finale.

Domande

Cosa ci chiedono le persone prima di chiamare

Con cosa parla, concretamente? Quale motore c’è dietro?

Può scegliere tra ElevenLabs Conversational AI, OpenAI Realtime e Gemini Live, oppure lasciare «auto» e la piattaforma sceglie in base alla lingua e alla disponibilità. Per la sintesi vocale in altre lingue oltre l’inglese, l’impostazione predefinita è `eleven_flash_v2_5` — 32 lingue, circa 75 ms; se desidera una qualità più alta e accetta una latenza maggiore, `eleven_turbo_v2_5` è di circa 250 ms. Su OpenAI Realtime ci sono dieci voci, e il motore arriva fino a `gpt-realtime-2.1`. Il cervello testuale si sceglie separatamente, da un catalogo in cui ogni modello ha la latenza e il costo al minuto scritti accanto.

Posso interromperlo mentre parla, o devo aspettare che finisca?

Può. Su OpenAI Realtime il rilevamento del parlato è semantico, con soglia 0,5, buffer di 300 ms e 500 ms di silenzio, e il commutatore di interruzione è attivo per impostazione predefinita. Su ElevenLabs, l’evento di interruzione viene inviato alla centrale telefonica per interrompere la riproduzione. Se però ha l’impressione che «non si possa interrompere», la causa di solito è un’altra: l’agente risponde in paragrafi, non in frasi. Quello si corregge nel prompt e nel limite di token, non nelle soglie.

In quante lingue parla?

La configurazione dell’agente supporta 32 lingue. La mappa interna delle lingue della piattaforma contiene 41 voci, mentre il pannello di amministrazione è tradotto in 20 — tre cifre per tre cose diverse. Il romeno è la lingua predefinita di un nuovo agente. Per una lingua specifica verifichiamo prima quale combinazione di modello vocale e fornitore la copre effettivamente, perché non tutti i modelli coprono le stesse lingue.

Come arriva sul mio sito e cosa devo cambiare da parte mia?

Una riga di script con l’identificatore pubblico del widget, oppure la tua componente personalizzata sopra `start()` / `stop()` / `toggle()`. Due cose devono essere vere sul tuo server, altrimenti il pulsante non fa nulla e non appare alcun errore: l’intestazione `Permissions-Policy` deve consentire `microphone=(self)` — con `microphone=()` il browser rifiuta il microfono in silenzio — e la politica di sicurezza dei contenuti deve consentire il caricamento dell’SDK dalla rete di distribuzione utilizzata. Le verifichiamo noi prima della pubblicazione.

Può chiamare lui per primo, non solo rispondere?

Sì, la piattaforma ha chiamate in batch, con importazione dei contatti, ritentativi e monitoraggio in tempo reale. Ma le chiamate in uscita non dipendono solo da noi: nel nostro registro dei problemi è documentato un caso in cui il centralino dell’operatore ha iniziato a restituire `403 Forbidden` per tutte le uscite, con la nostra configurazione invariata e con le chiamate in arrivo funzionanti normalmente. Per questo testiamo le uscite separatamente prima di promettere una campagna di chiamate, e per questo non vendiamo un volume di chiamate in uscita prima di quel test.

Cosa succede quando l’agente non conosce la risposta?

Passa la parola. Ogni agente ha limiti scritti e un percorso di trasferimento configurato. Nella messaggistica, il thread passa nello stato di presa in carico umana, con motivazione e assegnazione a un collega. Al telefono, il centralino esegue il trasferimento — cieco o assistito — verso un’estensione o un numero esterno. Ciò che supera il ruolo dell’agente si interrompe, non si improvvisa; è una scelta di progettazione, perché un agente che improvvisa in un ambito regolamentato è un rischio, non un risparmio.

Le conversazioni vengono registrate? Per quanto tempo vengono conservate?

Sì, vengono registrate, trascritte e analizzate, e tutto è collegato al tuo spazio di lavoro. Per quanto tempo vengono conservate è una tua decisione come titolare del trattamento, non un valore predefinito che ti imponiamo — e va detto chiaramente che la cancellazione automatica alla scadenza non è oggi una semplice impostazione della piattaforma: la cancellazione su richiesta è implementata, la cancellazione alla scadenza avviene tramite procedura. Se hai bisogno di un orologio automatico, viene costruito nel progetto.

Consuma denaro se il visitatore preme il pulsante e poi rifiuta il microfono?

No. Il microfono viene richiesto prima della sessione. Se la persona rifiuta, la richiesta di sessione non viene più effettuata affatto, quindi non viene emesso alcun URL firmato e non si consuma nulla. Separatamente, prima di qualsiasi operazione che costa, la piattaforma verifica il credito disponibile — il gate è prima della chiamata, non sulla fattura di fine mese.

Posso avere oggi un agente che risponde a un numero di telefono fisso?

Dipende da un elemento che non è l’agente: l’host SIP attraverso cui entra la chiamata. La parte dell’agente è pronta e si può mostrare subito nella pagina. La parte telefonica richiede un trunk funzionante dall’operatore e un centralino che risponda; alla data di scrittura, l’host attraverso cui passano le nostre linee di test non risponde, e noi non presentiamo come disponibile qualcosa che non possiamo avviare davanti a lei. Per un progetto reale, la telefonia si dimensiona separatamente — veda la pagina di telefonia e contact center.

Su cosa si basano le affermazioni sopra (21 fonti)
  1. app.kallina.info risponde 200 oggi; supabase.kallina.info risponde alle funzioni edgehttps://app.kallina.info/ · 2026-09-06
  2. Gli header serviti oggi in produzione su megapromoting.com permettono il microfono e la fonte dell'SDKhttps://www.megapromoting.com/ · 2026-09-06

19 di esse sono codice e file dei nostri repository. Non ne pubblichiamo il nome né la riga: insieme, in un'unica pagina, descriverebbero con troppa precisione come sono costruiti sistemi che non sono solo nostri. Le esaminiamo con te, nel repository, su richiesta — la verifica resta possibile, solo che avviene in una discussione.

Cosa vorresti che funzionasse meglio?

Raccontaci il tuo processo. Insieme stabiliamo cosa vale la pena costruire, cosa possiamo collegare e come verifichiamo il risultato.

Parliamone