Integrazioni
Si innesta dove lavori già. Senza esportare niente.
HubSpot e Shopify non sono un travaso notturno: i webhook allineano i dati mentre cambiano, e la fonte di verità resta dove è oggi. Per tutto il resto ci sono webhook firmati, API e un SDK pubblico.
HubSpot
In tempo realeContatti, aziende, deal, pipeline, prodotti e preventivi entrano in Audin e restano allineati mentre cambiano, non a fine giornata. HubSpot resta la fonte di verità, e quello che ci lavora sopra lo trova già dentro.
- Contatti e aziende
- da HubSpot
- Deal e fasi
- da HubSpot
- Pipeline e colori
- rispecchiati
- Prodotti e preventivi
- coi permessi commerce
Shopify
5 minutiAutorizzi l’app e clienti, ordini, prodotti e spedizioni entrano nella piattaforma. I webhook tengono tutto allineato in tempo reale, e gli import pesanti girano su un servizio dedicato che non tocca le chiamate in corso. Sullo store non scriviamo niente.
- Clienti e indirizzi
- sincronizzati
- Ordini e righe
- sincronizzati
- Spedizioni e tracking
- sincronizzati
- Webhook ordini e prodotti
- attivi
E se non usate nessuno dei due
HubSpot e Shopify non sono due casi speciali. Sono due data source.
Sotto quei due blocchi c’è un meccanismo solo, e non è riservato a loro: si chiama data source e collega qualunque sistema che abbia un’API. Se il gestionale, il CRM o il portale che usate oggi ne espone una, entra nello stesso modo, con la stessa macchina e le stesse garanzie.
- Si punta all’indirizzo dell’API e si dice dove stanno i record dentro la risposta
- I campi loro si mappano sui nostri una volta sola, anche quelli annidati
- Le credenziali stanno cifrate: una chiave fissa, oppure un login che rinnova il token da sé
- La paginazione la gestisce lui, che sia a pagine, a cursore o con l’indirizzo del «successivo» che l’API stessa restituisce
- Dopo il primo giro importa solo quello che è cambiato, tenendo il segno di dov’era arrivato
- Una chiave di riconciliazione fa sì che il record aggiornato sia lo stesso, non un doppione
- Quello che avete corretto a mano non viene sovrascritto, a meno che non chiediate il contrario
Che cosa si sceglie, per ogni sorgente
- Dove finisce
- Undici destinazioni, dal lead al preventivo
- Ogni quanto
- Da un quarto d’ora a una volta al giorno
- Che cosa entra
- Tutto, o solo le righe che passano i filtri
- Chi vince sui conflitti
- Le vostre modifiche, o la sorgente
- Come si autentica
- Chiave statica o login che rinnova il token
- Se l’API cambia
- Si corregge la mappatura, non il codice
E poi tutto il resto
Google e Gmail
Casella collegata, thread sui contatti, calendario per gli appuntamenti.
Telefonia
Numeri in entrata e in uscita, cascata sugli operatori, orari di apertura.
WhatsApp Business
Template approvati, risposte rapide, conversazioni nel CRM.
Email transazionali
Invii e broadcast con statistiche di consegna e apertura.
Widget web
Chat sul sito in una riga di codice, con lo stesso agente.
Form pubblici
Pubblicati su dominio o in embed, con logica condizionale.
Sorgenti dati
Sorgenti esterne sincronizzate a intervalli, con credenziali cifrate.
Il tuo gestionale
Se ha un’API, l’agente la chiama durante la conversazione.
Per sviluppatori
Se non c’è il connettore, c’è l’API.
API REST documentata con una chiave per account, webhook firmati con ritentativi e storico delle consegne, e un SDK pubblico per portare il softphone dentro il vostro software.
Eventi in uscita
Contatti e commenti creati, aggiornati o cancellati: firmati, con ritentativi per endpoint.
POST /your-endpoint{ topic: 'lead.created', data: { object: { … } } }Softphone nel vostro CRM
SDK headless per browser: microfono, audio, segnalazione e riconnessione gestiti. L’interfaccia la fate voi.
npm i @audin.ai/operator-sdkop.on('incomingCall', …)Eventi in ingresso
Un endpoint dedicato per far entrare contatti, pratiche e note dai vostri sistemi, con chiave e validazione.
Eventi in ingressoSicurezza e permessi
Credenziali cifrate a riposo, ruoli per entità e azione, dati e registrazioni in Unione Europea.
Operator SDK
Il softphone dei vostri operatori, dentro il vostro software.
@audin.ai/operator-sdk è un SDK headless per browser: gestisce microfono, transcodifica audio, canali di segnalazione e media, riconnessione e heartbeat. Nessuna interfaccia imposta: l’UI la disegnate voi, il resto lo fa l’SDK.
Sul registro pubblico npm
ESM + UMD, tipi TypeScriptZero dipendenze a runtimeLicenza MITimport { AudinOperator } from '@audin.ai/operator-sdk' const op = new AudinOperator({ coreUrl: 'https://core.audin.ai', // il token arriva dal vostro backend getToken: async () => (await fetch('/api/operator/token')).json(),}) op.on('incomingCall', call => { // mostrate la vostra UI, poi call.accept() // oppure call.reject()}) const nums = await op.listPhoneNumbers()await op.goOnline([nums[0].id]) const call = await op.dial('+39021234567', { callerId: nums[0].phoneNumber})call.mute(true); call.sendDtmf('5'); call.hangup()La chiave dell’account non entra mai nel browser
L’SDK non conosce la vostra chiave: chiama una callback getToken verso un endpoint vostro, che rilascia un token di sessione a vita breve (circa un’ora) e lo rinnova quando serve.
- 1Il browser chiede un token al vostro backend
- 2Il vostro backend chiama Audin con la chiave, che resta lato server
- 3L’SDK apre presenza e audio con quel solo token
Sotto il cofano, se vi interessa
- Il microfono si apre con cancellazione d’eco, soppressione del rumore e guadagno automatico, tutti configurabili
- La conversione in G.711 μ-law a 8 kHz avviene sul thread audio, senza bloccare l’interfaccia
- L’audio viaggia in frame binari su WebSocket; muto, DTMF e chiusura sono messaggi di controllo
- Il codec μ-law e il ricampionamento sono esportati anche singolarmente, se volete costruirvi il percorso audio
Presenza e numeri
L’operatore elenca i numeri dell’account e va online su quelli assegnati, cambiandoli quando vuole.
listPhoneNumbers()goOnline() · goOffline()
Chiamate in entrambi i sensi
Rispondere o rifiutare le entranti, chiamare in uscita scegliendo il numero mostrato al destinatario.
accept() · reject()dial(to, { callerId })
Controlli in chiamata
Muto, chiusura e toni DTMF iniettati sulla rete telefonica: i risponditori dall’altra parte li sentono davvero.
mute(on) · hangup()sendDtmf(digit)
Eventi tipizzati
Presenza, squillo, avvio, risposta e fine chiamata con il motivo: la vostra UI reagisce, non fa polling.
incomingCall · callStartedcallAnswered · callEnded
Riconnessione automatica con backoff e battito di presenza inclusi. In questa versione l’SDK gestisce una chiamata attiva per volta: mentre è in corso, le entranti vengono rifiutate e una nuova chiamata in uscita restituisce errore. Il protocollo è versionato: i cambi incompatibili escono con una versione maggiore.
Documentazione dell’SDKOgni integrazione, in una pagina
Portaci il tuo stack.
Ti diciamo cosa si collega subito, cosa richiede un webhook e cosa non vale la pena integrare.