Venerdì sera, 18:47. Zapier si ferma di nuovo
Chiamata del commerciale: "Da stamattina non arriva più niente dal sito, il CRM è vuoto, abbiamo zero lead nella pipeline del weekend." Il CTO apre Zapier, guarda la history. Zap in errore dalle 11:23 del mattino. Motivo: una delle app premium ha aggiornato lo schema di un campo, il mapping si è rotto, l'edge case non era coperto dal percorso di fallback. I task consumati del mese sono al 94%, il prossimo upgrade di piano porta il conto da 69 dollari a 243. E nel frattempo 31 conversazioni chiuse dal chatbot AI del sito sono rimaste sospese in un buffer di email che nessuno ha letto.
Questa è la storia tipica di chi collega chatbot AI e CRM attraverso un middleware generico. Il chatbot parla bene con i clienti, estrae le informazioni, qualifica il lead. Poi arriva il ponte verso il CRM, e il ponte è Zapier, Make, n8n in self-hosting improvvisato, o peggio ancora il buon vecchio invio email che un commerciale dovrebbe copiare a mano nella scheda contatto. Tre livelli di indirezione, tre punti dove la pipeline può rompersi, tre fatturazioni mensili che si sommano.
Il piano Autopilot di TrueReply è stato costruito proprio per eliminare questi livelli. Webhook diretti firmati con HMAC-SHA256, tool HTTP custom che il modello AI chiama durante la conversazione, variabili strutturate estratte con function calling e spedite al CRM con lo stesso payload che userebbe una chiamata API nativa. In questo articolo vediamo la meccanica completa, cosa cambia per un reparto IT di PMI italiana, dove Autopilot basta e dove serve un progetto Integrazioni custom.
Cosa sono i webhook firmati HMAC-SHA256
Partiamo dalla base. Un webhook è una chiamata HTTP POST che un servizio fa verso un URL del destinatario quando accade un evento. Niente polling, niente batch notturno: l'evento esce dalla sorgente entro millisecondi, arriva al ricevente, che può reagire in tempo reale.
Il problema di un webhook nudo è semplice: chiunque conosca l'URL può colpirlo e iniettare dati falsi. Se il nostro endpoint `POST /api/lead` accetta qualsiasi JSON senza verifica, è a un passo da essere inondato di dati spazzatura. La soluzione standard dell'industria, quella usata da Stripe, Shopify, GitHub, Slack, Twilio, è la firma HMAC-SHA256.
HMAC (Hash-based Message Authentication Code) è definito nello standard RFC 2104 e nel NIST FIPS 198-1. In breve: mittente e ricevente condividono un segreto. Il mittente calcola un digest SHA-256 del payload combinato con il segreto, lo mette in un header della richiesta. Il ricevente rifà lo stesso calcolo sul payload ricevuto usando lo stesso segreto, confronta i due digest. Se coincidono, la richiesta è autentica e non è stata manomessa in transito. Se non coincidono, si scarta.
La firma risponde a due domande:
- La richiesta arriva davvero da chi dice di essere? Sì, perché solo il mittente legittimo conosce il segreto.
- Il corpo è integro o è stato modificato? Sì, perché qualsiasi bit modificato cambia il digest.
Rimane una terza domanda: qualcuno può intercettare una richiesta valida e ripetutarla dopo? Questo è l'attacco di replay. La mitigazione standard, adottata da Stripe nel suo schema `t=timestamp,v1=signature`, è includere un timestamp nel payload firmato. Se il ricevente rifiuta tutto ciò che è più vecchio di 5 minuti, una richiesta intercettata oggi non può essere rigiocata domani.
I webhook Autopilot seguono esattamente questo pattern.
Anatomia di una chiamata webhook Autopilot
Quando il chatbot chiude una conversazione con lead qualificato o quando l'LLM invoca un tool HTTP custom durante la chat, Autopilot emette un POST HTTPS verso l'URL configurato in dashboard. La struttura della richiesta è la seguente:
{
"event_id": "evt_01HX9B7M2K4N5Q6P8R3T1V7W9Y",
"event_type": "lead.captured",
"timestamp": "2026-04-23T14:32:07.114Z",
"conversation_id": "conv_7b3f91c2a8e14d6b",
"bot_id": "bot_acme_site",
"source": {
"channel": "web",
"url": "https://www.acme.it/prodotti/caldaia-condensazione",
"user_agent": "Mozilla/5.0 ..."
},
"lead": {
"nome": "Marco Bianchi",
"email": "marco.bianchi@example.it",
"telefono": "+393351234567",
"azienda": "Bianchi Impianti SRL",
"p_iva": "01234567890"
},
"qualification": {
"intent": "richiesta_preventivo",
"prodotto": "caldaia_condensazione_24kw",
"urgenza": "alta",
"budget_range": "2000-3500",
"tempistiche": "entro_30_giorni",
"consenso_marketing": true
},
"transcript_url": "https://api.truereply.it/v1/conversations/conv_7b3f91c2a8e14d6b/transcript",
"delivery_attempt": 1
}Gli header inclusi nel POST sono:
POST /webhook/truereply HTTP/1.1
Host: api.acme.it
Content-Type: application/json
User-Agent: TrueReply-Webhook/1.0
X-TrueReply-Event: lead.captured
X-TrueReply-Delivery: evt_01HX9B7M2K4N5Q6P8R3T1V7W9Y
X-TrueReply-Timestamp: 1745418727
X-TrueReply-Signature: t=1745418727,v1=3f7a8b2e1d9c4f6a7b8e5d1c2f3a4b5e6d7c8a9b0e1d2c3f4a5b6c7d8e9f0a1bIl valore `v1` è il digest HMAC-SHA256, in esadecimale minuscolo, calcolato sulla stringa `"{timestamp}.{raw_body}"`. Il punto fra timestamp e body, lo schema v1, l'esadecimale: tutto ricalca l'implementazione di Stripe, scelta precisa per rendere familiare il verification code a chiunque abbia già integrato un webhook moderno.
Codice di verifica lato ricevente
Questo è ciò che il vostro backend deve fare per validare la firma. In Node.js:
const crypto = require('crypto');
function verifyTrueReplyWebhook(req, secret) {
const signatureHeader = req.headers['x-truereply-signature'];
const rawBody = req.rawBody; // importante: corpo raw, non il JSON parsato
const parts = Object.fromEntries(
signatureHeader.split(',').map(kv => kv.split('='))
);
const timestamp = parts.t;
const signature = parts.v1;
const now = Math.floor(Date.now() / 1000);
if (Math.abs(now - parseInt(timestamp, 10)) > 300) {
throw new Error('Timestamp fuori tolleranza (replay?)');
}
const signedPayload = `${timestamp}.${rawBody}`;
const expected = crypto
.createHmac('sha256', secret)
.update(signedPayload)
.digest('hex');
const a = Buffer.from(expected, 'hex');
const b = Buffer.from(signature, 'hex');
if (a.length !== b.length || !crypto.timingSafeEqual(a, b)) {
throw new Error('Firma non valida');
}
return JSON.parse(rawBody);
}Tre dettagli che un CTO nota subito. Primo, si firma il corpo raw, non il JSON riscritto: qualsiasi serializzatore che reinserisse spazi o cambiasse l'ordine delle chiavi rovinerebbe la verifica. Secondo, la finestra temporale di tolleranza è 5 minuti (300 secondi), coerente con Stripe. Terzo, il confronto fra digest usa `timingSafeEqual`, che è in tempo costante: evita un timing attack in cui un attaccante osservi quanto impiega il vostro server a rifiutare firme sbagliate e ricostruisca i byte del digest uno alla volta. Dettaglio piccolo, ma sufficiente a far scartare metà delle implementazioni casalinghe.
In PHP il pattern è identico (`hash_hmac('sha256', $signedPayload, $secret)` + `hash_equals` per il confronto sicuro). In Python con FastAPI o Flask, stessa ricetta con `hmac.compare_digest`.
Perché non Zapier
È utile mettere i numeri in fila. Consideriamo una PMI che chiude 100 lead al mese dal chatbot sul sito, più 400 interazioni di supporto post-vendita che aggiornano lo stato cliente nel CRM. Totale: 500 eventi mensili da far scorrere verso il CRM.
| Via | Costo mensile | Latenza evento to CRM | Affidabilità | Ownership |
|---|---|---|---|---|
| Email manuale (copy-paste) | 0 | 2-48 ore | Bassa, dipende dal commerciale | Nessuna, vola via se cambi persona |
| Zapier Professional (750 task) | 19,99 dollari | 1-15 minuti con piano base | Media, app premium aggiornano schemi senza preavviso | Nessuna, la logica è nella UI di Zapier |
| Zapier Team (2000 task annuali) | 69 dollari annuale, 103,50 mensile | 1-5 minuti | Media, task falliti vanno rilavorati | Bassa |
| Webhook diretto HMAC (Autopilot) | Incluso nel piano | 50-500 ms | Alta, retry automatici + audit log | Totale, codice nel vostro repo |
A volumi piccoli Zapier Professional regge. Non appena si entra nella fascia 2000-5000 eventi mensili, il piano Team diventa obbligatorio e il confronto cambia pelle. Un webhook diretto non ha costo variabile per task, non ha latenza di coda, non ha app premium che cambiano schema in silenzio, non ha un punto unico di fallimento fuori dal vostro controllo.
C'è un altro aspetto che i CTO delle PMI italiane sottovalutano: la ownership del codice di integrazione. Con Zapier, la logica "quando arriva un lead chatbot, crea contatto in HubSpot, tagga 'chat_web', crea deal in fase 1, notifica canale Slack" vive dentro la UI di un fornitore terzo. Non è in Git, non è revisionabile in code review, non ha test automatici. Con i webhook diretti di Autopilot la stessa logica è un handler scritto nel vostro backend, tracciato da Git, testabile, auditable. La differenza si nota al primo incidente.
Function calling: come il chatbot decide cosa chiamare
Autopilot usa function calling nativo dell'LLM. Ogni tool HTTP custom che definite in dashboard diventa una function che il modello può invocare durante la conversazione quando decide che serve. Non è una regola hardcoded "dopo 5 messaggi prova a estrarre l'email". È il modello che, in base al contesto, chiede di eseguire il tool giusto con i parametri giusti.
Esempio di tool registrato in Autopilot:
{
"name": "prenota_consulenza",
"description": "Prenota una consulenza con il commerciale. Chiamalo quando l'utente accetta un appuntamento e hai raccolto data preferita, nome ed email.",
"parameters": {
"type": "object",
"properties": {
"nome": { "type": "string" },
"email": { "type": "string", "format": "email" },
"telefono": { "type": "string" },
"data_preferita": { "type": "string", "format": "date" },
"fascia_oraria": { "type": "string", "enum": ["mattina", "pomeriggio"] },
"argomento": { "type": "string" }
},
"required": ["nome", "email", "data_preferita"]
},
"endpoint": "https://api.acme.it/v1/consulenze",
"auth": { "type": "bearer", "token": "{{secret.ACME_API_KEY}}" }
}L'LLM vede questa definizione nel contesto della conversazione. Quando l'utente scrive "ok venerdì mattina va bene, sono Laura Rossi, laura@example.it", il modello produce una tool call strutturata con i parametri estratti in modo type-safe. Autopilot esegue la chiamata HTTPS al vostro endpoint con il payload giusto, attende la risposta (fino a 10 secondi), e riporta il risultato nella conversazione ("Perfetto Laura, appuntamento confermato per venerdì 30 aprile alle 10:00").
Il punto chiave: non c'è un regex sulla frase, non c'è un branch hardcoded. Il parser è l'LLM stesso, che con lo strutturato JSON garantito rispetta lo schema al 100%. Questa è la differenza fra un vecchio flow builder a nodi e un agente AI moderno con tool use. E questa è la feature che rende Autopilot una categoria diversa rispetto ai chatbot low-code a decision tree.
Il piano Autopilot supporta tool HTTP illimitati per bot, fino a 3 bot per account, variabili strutturate estratte con schema JSON, e callback webhook in uscita firmati HMAC sullo stesso pattern visto sopra.
Variabili strutturate: cosa arriva al CRM
Ogni conversazione Autopilot può avere un set di variabili strutturate definite a livello di bot. Sono campi tipizzati (`string`, `number`, `enum`, `boolean`, `date`) che l'LLM popola in autonomia durante la chat, senza bisogno di "chiedi a questo punto l'email poi chiedi qui il budget". L'agente conduce la conversazione in modo naturale, e alla fine, o su tool call, il webhook esce con il JSON pieno.
Esempio di schema di qualificazione B2B che un responsabile IT può configurare in 15 minuti:
{
"variables": {
"settore": { "type": "enum", "values": ["retail", "manifatturiero", "servizi", "sanità", "altro"] },
"numero_dipendenti": { "type": "enum", "values": ["1-9", "10-49", "50-249", "250+"] },
"ha_crm_attivo": { "type": "boolean" },
"crm_in_uso": { "type": "string", "optional": true },
"budget_mensile_eur": { "type": "number", "optional": true },
"decision_maker": { "type": "boolean" },
"tempistiche": { "type": "enum", "values": ["subito", "30_giorni", "3_mesi", "valutazione"] },
"score_qualifica": { "type": "number", "computed": true }
}
}Il JSON che atterra al CRM ha campi normalizzati pronti per il mapping sulle proprietà HubSpot o sui custom field Pipedrive. Niente parsing testuale lato backend, niente regex fragile su risposte in linguaggio naturale. Il lavoro di estrazione l'ha già fatto l'LLM, con validazione schema-first.
Pattern di integrazione sui CRM più diffusi in Italia
Ogni CRM ha la sua sensibilità. Il webhook Autopilot è generico, sta al vostro backend tradurre il payload nella chiamata API del CRM. Qui una mappa rapida dei pattern consigliati:
| CRM | Endpoint tipico | Autenticazione | Rate limit | Note operative |
|---|---|---|---|---|
| HubSpot | POST /crm/v3/objects/contacts | Private App token Bearer | 100-190 req/10s burst, 250k-1M req/giorno | Search API capped a 4 req/s. Usare `idempotencyKey` per deduplica. |
| Pipedrive | POST /v1/persons | API token query param o OAuth | Token bucket con budget giornaliero = 30k × plan multiplier × seats | Burst su finestra 2 secondi. Combinare POST person + POST deal. |
| Salesforce | Composite API / sObject Collections | OAuth 2.0 JWT Bearer | 15.000 API call per organizzazione al giorno (Essentials). Platform Events per volumi alti | Per pipeline reattive, pubblicare un Platform Event invece del direct upsert. |
| ActiveCampaign | POST /api/3/contacts | Api-Token header | 5 req/s | Ottimo per sync contatto + tag + list in un'unica chiamata contact sync. |
| Zoho CRM | POST /crm/v8/Leads | OAuth 2.0 | 100 req/min organizzazione | Supporta upsert con external_id, buono per dedup. |
| Teamleader Focus | POST /contacts.add | OAuth 2.0 | 200 req/min | Italia-friendly, payload con codice fiscale e partita IVA nativi. |
| vTiger self-hosted | REST /webservice.php | Session + token | Dipende dal server | Buona scelta quando la PMI vuole on-premise. |
| Fluentis ERP | Endpoint REST custom | Basic o JWT | Configurabile | Integrazione tipica B2B manifatturiero italiano. |
La regola pratica: il vostro handler webhook riceve il POST firmato da Autopilot, lo valida, lo traduce nella chiamata API del CRM, gestisce l'errore nativo del CRM, risponde 200 ad Autopilot se tutto è andato a buon fine. Un singolo file handler, 80-150 righe di codice per CRM, test inclusi.
Per pipeline più complesse (es. anti-duplicati intelligenti, arricchimento dati con clearbit, routing del lead su più destinazioni in funzione di regole), il consiglio è mantenere il webhook Autopilot → backend vostro, ed è nel backend che vive l'orchestrazione. Niente logica di business dentro Zapier: una regola che si paga in chiarezza architetturale.
Retry, idempotency, dead letter queue
Cosa succede se il vostro endpoint è down alle 3 di notte quando arriva il lead? Autopilot fa quello che Stripe, Shopify, GitHub fanno: retry con exponential backoff.
Schema di retry:
- Tentativo 1: immediato
- Tentativo 2: dopo 30 secondi
- Tentativo 3: dopo 2 minuti
- Tentativo 4: dopo 10 minuti
- Tentativo 5: dopo 1 ora
- Tentativo 6: dopo 6 ore
- Tentativo 7: dopo 24 ore
Dopo il settimo fallimento, l'evento entra nella dead letter queue accessibile in dashboard Autopilot, con possibilità di replay manuale o automatico a evento risolto. Tutti i tentativi sono tracciati in audit log con status HTTP, body della risposta, durata. Niente lead persi nel vuoto.
L'altra faccia della medaglia è l'idempotency. Se il tentativo 1 è riuscito ma la risposta è andata persa, Autopilot tenterà di nuovo con lo stesso `event_id`. Il vostro backend deve riconoscere che `evt_01HX9B7M2K4N5Q6P8R3T1V7W9Y` è già stato processato e non creare un contatto duplicato.
Pattern di idempotency consigliato:
async function handleWebhook(event) {
const existing = await db.processedEvents.findOne({ event_id: event.event_id });
if (existing) {
return { status: 'already_processed', original: existing.created_at };
}
const result = await createHubspotContact(event.lead, event.qualification);
await db.processedEvents.insertOne({
event_id: event.event_id,
hubspot_id: result.id,
created_at: new Date()
});
return { status: 'processed', hubspot_id: result.id };
}In 15 righe di codice si elimina la classe intera di bug "lead duplicato nel CRM al riavvio del server". È il tipo di robustezza che Zapier promette ma che non potete ispezionare davvero.
Sicurezza operativa: rotazione segreti e dual-secret window
Il segreto HMAC non è eterno. Va ruotato periodicamente (il nostro consiglio: ogni 180 giorni, o immediatamente se sospettate un leak). Autopilot supporta la rotazione senza downtime attraverso una finestra dual-secret: quando generate il nuovo segreto, il vecchio rimane valido per 24 ore. Durante la finestra, il vostro endpoint deve validare accettando entrambe le firme (prima prova la nuova, poi la vecchia).
function verifyWithRotation(req, secretNew, secretOld) {
try {
return verifyTrueReplyWebhook(req, secretNew);
} catch (e) {
if (secretOld) {
return verifyTrueReplyWebhook(req, secretOld);
}
throw e;
}
}La finestra di 24 ore è sufficiente per deployare il nuovo secret su tutti i nodi del vostro backend senza bloccare la consegna. Una volta passato il periodo, il vecchio segreto smette di funzionare e chiunque avesse intercettato una firma storica non la può riutilizzare.
Una nota sul trasporto. Tutto il traffico Autopilot → vostro endpoint è HTTPS/TLS 1.3. La firma HMAC è un livello in più, ma il canale è già cifrato. L'eventuale man-in-the-middle richiederebbe di compromettere PKI pubblica, e a quel punto avreste problemi più grandi.
Audit log e compliance
Ogni evento webhook è tracciato. In dashboard Autopilot trovate la cronologia per bot, filtrabile per `event_type`, intervallo temporale, stato di consegna. Per ciascun evento è disponibile:
- Payload inviato (JSON completo, con redaction configurabile sui campi sensibili)
- Header di firma
- Tentativi di consegna con timestamp, status code, latenza, response body
- Link al transcript conversazione originale
Per reparti IT che lavorano sotto GDPR, questo è oro. Un DPO può in 3 click mostrare che il lead "marco.bianchi@example.it" è stato raccolto il 23 aprile alle 14:32, consegnato a HubSpot alle 14:32:01, con consenso marketing `true` nel payload strutturato. Compliance finita, nessun ticket di supporto.
Il retention dell'audit log è di 90 giorni su piano Autopilot standard. Per esigenze più lunghe (alcuni settori regolati chiedono 24-36 mesi), si passa a un progetto Integrazioni custom con storage dedicato.
Due scenari reali
Ecommerce 5 milioni di fatturato annuo. Un negozio online di arredo casa con 800 ordini al mese e 2.500 conversazioni chatbot mensili sul sito. Prima: Zapier Team a 69 dollari annuali (828 dollari anno), 5 zap multi-step, latenza media lead to CRM 3 minuti, 2 incidenti di rottura all'anno. Dopo: Autopilot con webhook diretto verso HubSpot, costo 399 euro al mese (ma include anche il chatbot AI e la voce, cioè elimina 2 tool precedenti), latenza 200 ms, nessun incidente in 9 mesi. Il beneficio concreto: 27 lead in più convertiti al mese grazie alla reattività sub-secondo del ping a HubSpot che innesca l'automazione email entro 5 secondi dal lead. Vedi anche Chatbot e-commerce.
Agenzia marketing BtB. 3 commerciali, Pipedrive, 150 lead al mese dal sito. Prima: form contatti → email → copia manuale in Pipedrive, lead age medio 4 ore, tasso di richiamo entro 24 ore 38%. Dopo: chatbot Autopilot con webhook firmato che crea Person + Deal in Pipedrive, tag automatico per fonte (landing A/B test), notifica Slack al commerciale competente basata su `settore`. Lead age medio 90 secondi, tasso di richiamo entro 24 ore 71%.
In entrambi i casi il calcolo ROI è immediato: meno di 3 lead aggiuntivi convertiti al mese pagano il salto da piano lower a Autopilot.
Quando Autopilot basta e quando serve Custom
Autopilot è pensato per l'80% dei casi d'uso PMI. Basta quando:
- Volumi fino a 2.000 conversazioni e 500 minuti voce al mese
- Fino a 3 bot per account
- Webhook verso endpoint controllato dal cliente o verso CRM standard
- Tool HTTP custom senza logica stateful lato provider
- Variabili strutturate con schemi JSON standard
- Audit log 90 giorni
- Compliance GDPR standard
Serve un progetto Agente AI custom o Integrazioni custom quando entra uno dei seguenti:
- Volumi oltre 5.000 conversazioni o 2.000 minuti voce al mese (passa al modello "paghi consumi reali, nessun canone piattaforma")
- Integrazione con ERP italiano on-premise (Fluentis, Mexal, TeamSystem) via connettore dedicato
- SLA 99.95%+ con infrastruttura dedicata
- Retention audit log sopra 24 mesi o residenza dati in specifica region
- Orchestrazioni multi-sistema complesse (bot che interroga ERP per disponibilità + CRM per storico + calendar per slot + crea ordine + manda conferma)
- Personalizzazioni del modello AI (fine-tuning su vostro corpus, prompt system avanzati con knowledge base multi-livello)
Il consiglio pratico: partite Autopilot. Se dopo 90 giorni emerge un vincolo che Autopilot non copre, il percorso verso Custom è lineare (stesso provider, stessi webhook, stesse integrazioni già testate), e pagate il salto solo quando i numeri lo giustificano.
Piano di implementazione in 14 giorni
Ecco una roadmap realistica per portare a regime la pipeline chatbot → CRM via webhook Autopilot. Pensata per un reparto IT di PMI italiana con un dev backend disponibile al 50%.
Giorno 1-2. Audit attuale e design payload. Mappate i campi che oggi arrivano via Zapier o via email nel CRM. Definite lo schema variabili Autopilot corrispondente. Un foglio con tre colonne: campo sorgente (chatbot), campo CRM, trasformazione eventuale.
Giorno 3-4. Setup Autopilot e bot base. Creazione account, configurazione bot, caricamento knowledge base (sito, FAQ, listino). Primo test con chatbot generico su sito interno.
Giorno 5-6. Handler webhook backend. Un endpoint HTTPS nel vostro backend che verifica la firma HMAC, parsa il payload, fa l'upsert nel CRM. 150-200 righe di codice. Test con curl e payload fake firmato manualmente.
Giorno 7-8. Tool HTTP custom. Registrazione in Autopilot dei tool `crea_contatto`, `prenota_slot`, `recupera_ordine` con le rispettive JSON schema. Test di conversazione che attivi ciascun tool.
Giorno 9-10. Retry e idempotency. Aggiunta deduplica `event_id` nel backend, test di failure simulato (endpoint down, timeout, 500), verifica che Autopilot ritenti e l'idempotency regga.
Giorno 11. Audit log e monitoring. Collegamento dei log webhook a Datadog, New Relic o Grafana Loki. Alert su tasso di errore webhook > 1% su finestra 15 minuti.
Giorno 12. Rotazione segreti. Documentazione della procedura interna per ruotare il segreto HMAC ogni 180 giorni. Finestra dual-secret testata.
Giorno 13. Staging + UAT. Demo interna con 2-3 conversazioni end-to-end. Commerciale verifica che i contatti atterrino nel CRM come atteso, completi, taggati.
Giorno 14. Go live graduale. Bot attivo sul 25% del traffico sito, poi 50%, poi 100% nel giro di 48 ore. Monitoraggio costante nelle prime 72 ore.
Totale: 2 settimane solari, 8-10 giornate uomo di backend dev, 1-2 giornate di ops. Meno di un mese di Zapier Team pagato.
Checklist tecnica da sottoporre al team IT
Se siete un CTO o responsabile IT e state valutando Autopilot per sostituire un middleware esistente, ecco la lista dei requisiti che il vostro team di sviluppo deve confermare di poter soddisfare:
- Endpoint HTTPS pubblico su dominio del cliente (certificato valido, TLS 1.2+)
- Capacità di leggere il raw body della richiesta prima del parsing JSON
- Libreria HMAC-SHA256 standard nel linguaggio del backend (disponibile ovunque)
- Database o cache con possibilità di lookup per `event_id` per idempotency (Redis, tabella Postgres con indice, DynamoDB)
- Ambiente di staging separato con secret HMAC diverso dalla produzione
- Sistema di logging strutturato per audit
- Processo interno di rotazione secret documentato
Nessuna di queste voci richiede infrastruttura esotica. Un backend Node/Python/PHP/Go standard copre tutto.
In sintesi
I webhook HMAC-SHA256 di Autopilot non sono una feature di contorno. Sono l'asse portante del modello "chatbot AI italiano che parla davvero col CRM": latenza sub-secondo, sicurezza di livello enterprise (stesso pattern di Stripe e Shopify), ownership totale del codice di integrazione, retry automatici con idempotency, audit log completo. Tutto senza Zapier, Make, o email manuale come livello intermedio.
Per un reparto IT di PMI italiana significa meno fornitori da gestire, meno punti di failure nella pipeline, meno fatture mensili da giustificare al CFO, e una qualità di dato nel CRM che si traduce in commerciali che lavorano lead freschi invece di scavare in thread email vecchi di 4 ore.
Il piano Autopilot a 399 euro al mese IVA esclusa (365,75 euro equivalenti con fatturazione annuale) include webhook HMAC illimitati, tool HTTP custom, variabili strutturate, 2.000 conversazioni e 500 minuti voce. Per volumi superiori o integrazioni con ERP on-premise, un progetto Integrazioni custom estende lo stesso pattern tecnico con infrastruttura dedicata.
Se il vostro Zapier ha fatto crash anche solo una volta nell'ultimo trimestre, è tempo di togliere il middleware e lasciare parlare direttamente il chatbot e il CRM.



