Techsy
Contatti
Inizia
Torna al Blog
ai-machine-learning

Collegare gli agenti vocali AI al CRM: HubSpot, Salesforce & Pipedrive (Con il codice webhook)

Scritto da Mert Batur Gürbüz
Jun 10, 2026
18 lettura
Sommario
Collegare gli agenti vocali AI al CRM: HubSpot, Salesforce & Pipedrive (Con il codice webhook)

Collegare gli agenti vocali AI al CRM: HubSpot, Salesforce & Pipedrive (Con il codice webhook)

Su una build Vapi che abbiamo rilasciato all'inizio di quest'anno, il percorso agente vocale → nostra API di lookup interna → lettura contatto HubSpot ha registrato 410ms a p50 e 1.240ms a p95. Quel numero è il motivo per cui questo post esiste. L'integrazione tra un agente vocale e il CRM vive o muore su un orologio che controlla il chiamante. Cablala come funziona una sincronizzazione Zapier e l'agente va in silenzio a metà frase mentre un webhook striscia. La soluzione non sono più chiamate API. Sono due pattern, un timeout e una frase di fallback. Tutti e tre, con codice che puoi mettere in produzione.

La maggior parte delle guide sull'argomento insegna il concetto e poi vende il prodotto. Nessuna fornisce l'handler. Noi facciamo il contrario.

Punti chiave

  • Gli agenti vocali si collegano al CRM in due modi: function calling per le letture live durante la chiamata, webhook per le scritture post-chiamata.
  • Le letture durante una chiamata richiedono un budget di 5 secondi più una frase di fallback parlata così il chiamante non sente mai silenzio.
  • Mappa i dati della chiamata sui campi CRM con una chiave di idempotenza così i webhook ritentati non creano record duplicati.
  • Pipedrive non ha webhook per le modifiche ai campi personalizzati: si effettua polling su dealFields con uno scheduler.

Cosa significa davvero "integrazione agente vocale CRM" (2 metodi, non uno)

L'integrazione tra un agente vocale e un CRM connette l'agente al CRM in due modi distinti: function calling per le letture di dati live mentre il chiamante è in linea, e webhook per scrivere il risultato della chiamata dopo che ha riagganciato. La lettura live personalizza la conversazione; la scrittura post-chiamata registra quello che è successo. Girano su orologi diversi e falliscono in modi diversi.

Il modello mentale in una frase: il function call è l'agente vocale che fa una domanda al CRM a metà frase; il webhook è l'agente che presenta il suo report dopo aver riagganciato.

Function calling: leggere dati in tempo reale

Il function calling è il meccanismo con cui un LLM sospende la generazione di testo, chiama uno strumento esterno che hai definito, e incorpora il risultato in quello che dice dopo. Per un agente vocale, quello strumento è "cerca questo chiamante nel CRM." Il modello decide che ha bisogno dei dati, il tuo server li recupera, e l'agente saluta il chiamante per nome con il suo piano. Se vuoi approfondire la meccanica, la nostra guida al function calling spiega lo schema di definizione degli strumenti. Il problema: tutto avviene in tempo reale, quindi è una corsa contro la pazienza del chiamante.

Webhook: scrivere dati dopo

Un webhook è una richiesta POST che il tuo server riceve quando qualcosa termina. Per gli agenti vocali, l'evento principale è la fine della chiamata: la piattaforma ti invia la trascrizione, il sommario, la disposizione e l'URL della registrazione nel momento in cui la chiamata chiude. Prendi quel payload e scrivilo nel CRM come Attività, poi sposta lo stage del deal. Nessuna pressione sul tempo. Il chiamante ha già riagganciato. Puoi ritentare, mettere in coda e riconciliare.

La maggior parte delle integrazioni in produzione usa entrambi. Leggi in tempo reale, scrivi dopo.

L'architettura: cosa succede su una chiamata in entrata, dall'inizio alla fine

Un'integrazione agente vocale-CRM segue un ciclo fisso di cinque fasi su ogni chiamata in entrata. La chiamata arriva, l'agente legge il record del chiamante in tempo reale via function call, avviene la conversazione, si attiva un webhook di fine chiamata, e il tuo handler scrive il risultato nel CRM e notifica un operatore umano se necessario. Ogni esempio di codice in questo post dipende da uno di questi cinque passaggi.

Il flusso, passo dopo passo:

  1. Arriva la chiamata in entrata. La piattaforma (Vapi, Retell, o il tuo stack agente vocale personale) risponde e identifica il chiamante dal numero di telefono.
  2. Lookup live (function call). L'agente chiama il tuo strumento di lookup, che interroga il CRM e restituisce il contatto, lo stage del deal e il contesto recente.
  3. Conversazione. L'agente parla, eventualmente chiamando altri strumenti (controlla gli slot per appuntamenti, cerca un ordine).
  4. Webhook di fine chiamata. La chiamata termina, la piattaforma invia via POST un report di fine chiamata al tuo server.
  5. Scrittura CRM + handoff. Il tuo handler registra l'Attività, imposta la disposizione, sposta il deal e crea un task per l'operatore umano con tutto il contesto.

Il diagramma hero in cima mappa esattamente questo: una freccia in entrata, una suddivisione in "lettura live" e "scrittura post-chiamata", tre card di destinazione CRM e un nodo di handoff. Tieni quella immagine in testa. Tutto quello che segue è riempire i riquadri.

Leggere dati CRM durante la chiamata (e perché hai un budget di 5 secondi)

Sì, un agente vocale può recuperare dati CRM durante una chiamata. Usa un function call che colpisce il tuo endpoint di lookup e restituisce prima della frase successiva dell'agente. Il vincolo è il tempo. Secondo la documentazione degli eventi server di Vapi, i function tool call girano contro un timeout, e su una chiamata live il tuo tetto reale è la pazienza del chiamante, non quella dell'API. Pianifica cinque secondi e prepara un fallback.

Ecco la parte che nessuno sul SERP misura. Sul nostro percorso Vapi → API di lookup interna → lettura contatto HubSpot, abbiamo registrato 410ms a p50 e 1.240ms a p95 round-trip su alcune migliaia di chiamate. La maggior parte delle letture è veloce. Ma la coda p95 (backoff del rate limit di HubSpot, una lambda fredda, un fetch di associazione lento) è dove le chiamate diventano silenziose. Questa coda è il motivo per cui impostiamo il timeout del tool di function call a 5 secondi: comodamente sopra il p95, comodamente al di sotto del punto in cui un essere umano dice "pronto? c'è qualcuno?"

La regola che conta: se il tuo lookup CRM richiede più tempo della pazienza del chiamante, l'agente deve dire qualcosa. Mai il silenzio. Il silenzio in linea è il modo più rapido per perdere una chiamata. Nelle nostre build l'agente pronuncia una frase di fallback nell'istante in cui lo strumento va in timeout: "Fammi verificare, un secondo." Il chiamante sente una pausa che suona umana, non un bot rotto.

Questa è la definizione dello strumento di function call che usiamo per un lookup CRM live:

json
{
  "type": "function",
  "function": {
    "name": "lookup_crm_contact",
    "description": "Look up the caller in the CRM by phone number before greeting them. Returns name, plan, and open deal stage.",
    "parameters": {
      "type": "object",
      "properties": {
        "phone": {
          "type": "string",
          "description": "Caller phone number in E.164 format"
        }
      },
      "required": ["phone"]
    }
  },
  "server": {
    "url": "https://api.yourdomain.com/voice/crm-lookup",
    "timeoutSeconds": 5
  }
}

Due cose rendono questo sicuro per la voce. Il timeoutSeconds: 5 impedisce all'agente di aspettare indefinitamente. E server.url punta al tuo endpoint, non direttamente al CRM, quindi controlli caching, retry e la forma di quello che viene restituito. Nella nostra esperienza, mettere un'API interna tra l'agente e il CRM è la decisione singola migliore che puoi prendere: è lì che vivono la logica di fallback e il mapping dei campi.

Scrivere dopo la chiamata: registrare attività, sommario e disposizione

Per registrare una chiamata di agente vocale AI nel CRM, ricevi il webhook di fine chiamata della piattaforma, estrai la trascrizione, il sommario e la disposizione, poi invii via POST un'Attività di chiamata al CRM e imposti lo stato del lead. Nessuna pressione di latenza qui (il chiamante ha riagganciato), quindi è qui che fai le scritture pesanti, i retry e gli spostamenti di stage del deal che non ti permetteresti mai a metà chiamata.

Il payload di fine chiamata (Vapi lo chiama evento end-of-call-report, come da documentazione degli eventi server) porta la trascrizione, un sommario generato, l'esito della chiamata, l'URL della registrazione e la durata. Il tuo compito è mappare tutto questo in un'Attività CRM e far avanzare il record.

Ecco un handler Node/TypeScript eseguibile che riceve il report e scrive un'engagement di chiamata HubSpot, poi avanza lo stage del deal. L'endpoint POST /crm/v3/objects/calls e il pattern di associazione al contatto vengono direttamente dalla guida alle calls API di HubSpot:

typescript
import express from "express";

const app = express();
app.use(express.json());

const HUBSPOT_TOKEN = process.env.HUBSPOT_TOKEN!;
const seen = new Set<string>(); // swap for Redis/DB in production

app.post("/voice/end-of-call", async (req, res) => {
  const report = req.body.message; // Vapi end-of-call-report
  if (report?.type !== "end-of-call-report") return res.sendStatus(200);

  const key = report.call.id; // idempotency key (see field-mapping section)
  if (seen.has(key)) return res.sendStatus(200);
  seen.add(key);

  const { contactId, dealId } = report.call.metadata; // set when call started

  // 1. Write the call Activity (engagement)
  await fetch("https://api.hubapi.com/crm/v3/objects/calls", {
    method: "POST",
    headers: {
      Authorization: `Bearer ${HUBSPOT_TOKEN}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      properties: {
        hs_call_title: "AI Voice Agent Call",
        hs_call_body: report.summary,
        hs_call_duration: String(report.durationMs ?? 0),
        hs_call_recording_url: report.recordingUrl ?? "",
        hs_call_status: "COMPLETED",
        hs_timestamp: Date.now(),
      },
      associations: [
        {
          to: { id: contactId },
          types: [{ associationCategory: "HUBSPOT_DEFINED", associationTypeId: 194 }],
        },
      ],
    }),
  });

  // 2. Move the deal stage based on disposition
  if (dealId && report.analysis?.disposition === "qualified") {
    await fetch(`https://api.hubapi.com/crm/v3/objects/deals/${dealId}`, {
      method: "PATCH",
      headers: {
        Authorization: `Bearer ${HUBSPOT_TOKEN}`,
        "Content-Type": "application/json",
      },
      body: JSON.stringify({ properties: { dealstage: "qualifiedtobuy" } }),
    });
  }

  res.sendStatus(200);
});

app.listen(3000);

Questo è il risultato che il titolo prometteva: un handler da mettere in produzione, non la descrizione di uno. Non vuoi scrivere e ospitare tutto questo? Un'alternativa no-code come n8n può ricevere lo stesso webhook e scrivere nel CRM con nodi visivi, al costo di un po' di controllo sui retry e sulla gestione degli errori.

Mappare i dati della chiamata sui campi CRM (senza creare duplicati)

Il mapping dei campi collega ogni dato della chiamata a un oggetto e campo specifico del CRM: l'intenzione del chiamante a una proprietà del deal, la disposizione allo stato del lead, il sommario al corpo dell'Attività. Due insidie di produzione mordono qui: formattare i dati per la sintesi vocale prima che l'agente li legga ad alta voce, e usare una chiave di idempotenza così un webhook ritentato non crea un secondo record per la stessa chiamata.

Nelle nostre build manteniamo il mapping in un unico oggetto di configurazione così i non-sviluppatori possono modificarlo senza toccare l'handler. Ecco la forma di uno reale:

Dato della chiamataOggetto.campo CRMTipoEsempio
intenzione del chiamantedeal.intent_summarystring"Vuole una demo del piano Pro"
disposizionecontact.lead_statusenum"qualified"
sommario chiamatacall.hs_call_bodystring"Discusso pricing, prenotata demo"
URL registrazionecall.hs_call_recording_urlurl"https://..."
durata (ms)call.hs_call_durationnumber184000
flag qualificatodeal.dealstageenum"qualifiedtobuy"

Prima insidia: formattazione per la sintesi vocale. Un agente vocale che legge JSON grezzo a un chiamante suona rotto. Formatta i dati CRM in una frase prima che raggiungano il TTS. Non restituire {"plan":"pro","renewed":"2026-03"} al modello. Restituisci "sono sul piano Pro, rinnovato lo scorso marzo" così l'agente lo dice in modo naturale.

Seconda insidia: idempotenza. Le piattaforme vocali ritentano i webhook. Se il tuo handler non è idempotente, la stessa chiamata viene registrata due volte e ottieni record duplicati. Usa l'ID chiamata come chiave:

typescript
const key = report.call.id;
if (await store.has(key)) return res.sendStatus(200); // already processed
await store.add(key);
// ...do the CRM write

In produzione, quello store è Redis o una riga di database con un vincolo unico sull'ID chiamata, non un Set in memoria. Il Set di sopra funziona per una demo; perde la memoria ogni volta che il server si riavvia.

Prima delle sezioni per singolo CRM, ecco come le tre piattaforme differiscono sulle cose che contano davvero per la voce:

HubSpotSalesforcePipedrive
Oggetto attività/chiamataengagement / crm/v3/objects/callsTask / ActivityActivity
Oggetto dealDealOpportunityDeal
AuthOAuth / private app tokenOAuthAPI token / OAuth
Scrittura post-chiamataengagement APIREST / CompositeActivities API
Webhook campi personalizzatisìsìno, polling su dealFields

Integrazione HubSpot (Vapi → HubSpot, passo dopo passo)

Per un'integrazione Vapi → HubSpot, mappi la lettura live su un lookup del Contatto e la scrittura post-chiamata su un'engagement di chiamata associata a quel Contatto e al suo Deal. Il modello a oggetti di HubSpot è Contatto, Deal ed engagement (l'Attività), e l'endpoint POST /crm/v3/objects/calls è il tuo target di scrittura. Questo è il pattern integrazione vapi hubspot che la maggior parte degli sviluppatori cerca.

La lettura live è un function call al tuo endpoint di lookup, che interroga GET /crm/v3/objects/contacts/search per numero di telefono e restituisce il Contatto e qualsiasi Deal aperto. La scrittura post-chiamata è l'handler della sezione precedente: crea un'engagement di chiamata e la associa al Contatto via tipo di associazione 194, poi esegue PATCH su dealstage del Deal.

Il dettaglio che le persone non notano: le associazioni HubSpot sono tipizzate. Un'associazione chiamata-contatto usa un associationTypeId specifico, e la chiamata non apparirà nella timeline del contatto se la ometti. La guida alle calls API di HubSpot elenca gli ID. Per l'auth, un private app token è il percorso più rapido per un singolo workspace; usa OAuth se stai distribuendo questa integrazione su più account HubSpot.

Integrazione Salesforce (oggetti, auth, lettura/scrittura in tempo reale)

Un'integrazione agente vocale Salesforce legge da Contatto o Lead durante la chiamata e scrive un Task (l'oggetto Attività) dopo. Il deal sta su Opportunity. Il pattern è identico a HubSpot (lettura via function call live, scrittura post-chiamata), ma i nomi degli oggetti e il flusso di autenticazione differiscono. Colpirai la REST API o la Composite API per la scrittura.

Per la lettura live, il tuo endpoint di lookup interroga Salesforce con una richiesta SOQL tipo SELECT Id, Name, Account.Name FROM Contact WHERE Phone = '...' e restituisce il risultato all'agente. Per la scrittura post-chiamata, crei un Task con WhoId impostato sul Contatto/Lead e WhatId sull'Opportunity, come da guida alla REST API di Salesforce:

typescript
await fetch(
  `${INSTANCE_URL}/services/data/v60.0/sobjects/Task`,
  {
    method: "POST",
    headers: {
      Authorization: `Bearer ${sfToken}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      Subject: "AI Voice Agent Call",
      Description: report.summary,
      Status: "Completed",
      WhoId: contactId,      // Contact or Lead
      WhatId: opportunityId, // Opportunity
      CallDurationInSeconds: Math.round((report.durationMs ?? 0) / 1000),
    }),
  }
);

L'insidia specifica per la voce: i token OAuth di Salesforce scadono, e non vuoi che un refresh del token si metta in gara con il tuo budget di lettura live di 5 secondi. Rinnova i token in background su uno schedule, metti in cache l'access token e tienilo caldo così il lookup live non paga mai il costo del refresh durante una chiamata.

Integrazione Pipedrive (quella che tutti saltano)

L'integrazione Pipedrive funziona attraverso Persons, Deals e Activities, e ha una vera trappola: non esiste un webhook per le modifiche ai campi personalizzati. Se il tuo agente vocale scrive un campo personalizzato e hai bisogno di reagire a quella modifica altrove, non puoi iscriverti. Pipedrive non ti invia un webhook quando cambia un campo personalizzato; devi fare polling su dealFields con uno schedule. Quasi nessuno lo copre, ed è esattamente per questo che le integrazioni agente vocale Pipedrive si rompono in modi sottili.

Il ciclo di vita vocale si mappa in modo pulito: la lettura live interroga GET /persons/search per numero di telefono, la scrittura post-chiamata crea un'Attività (POST /activities) collegata alla Person e al Deal, e la qualificazione sposta il Deal allo stage successivo. Roba standard.

La trappola sono i campi personalizzati. In Pipedrive, i campi personalizzati sono referenziati da una chiave hash di 40 caratteri, non da un nome leggibile, quindi il tuo config di mapping deve memorizzare qualcosa come dcf558aba6... invece di plan_tier. E secondo la documentazione DealFields di Pipedrive, non esiste un evento di modifica per questi campi. Se un sistema downstream deve sapere quando l'agente ha aggiornato un campo personalizzato, fai polling su GET /dealFields e confronta con il tuo ultimo snapshot su un cron. Non è elegante. È semplicemente come funziona Pipedrive, e scoprirlo alle 2 di notte in produzione è peggio che leggerlo qui.

L'handoff di qualificazione del lead: spostare il deal e briefare l'operatore

L'handoff è dove l'agente vocale sposta lo stage del deal alla qualificazione, crea un task per l'operatore umano e passa la trascrizione e il sommario così l'operatore entra già conoscendo il contesto. Fatto bene, la persona riceve un lead qualificato e caldo con note allegate, non un nome freddo e un numero di telefono.

Meccanicamente sono tre scritture, tutte nell'handler post-chiamata: PATCH del deal allo stage qualificato, POST di un'Attività/Task assegnata all'operatore con una scadenza, e inserimento del sommario della chiamata nel corpo del task. L'operatore apre il CRM, vede "AI qualificato: vuole una demo Pro, budget confermato, preferisce giovedì," e richiama preparato.

È anche qui che la scelta della piattaforma conta. Se stai ancora decidendo su quale motore costruire, la nostra analisi di quale piattaforma gestisce meglio l'integrazione CRM confronta come Vapi, Retell e Bland espongono i metadati delle chiamate e gli eventi webhook, e quella differenza influisce direttamente su quanto pulito può essere il tuo handoff.

Costruirlo da soli o delegarlo (ore reali)

Costruire un'integrazione agente vocale-CRM di livello produzione richiede circa 20-40 ore per CRM, e le ore non vanno dove ti aspetteresti. Il percorso felice di lettura e scrittura è forse un giorno. Il resto va in gestione dei token di auth, mapping dei campi, gestione dei fallback, idempotenza e test contro i rate limit e le peculiarità del CRM. Quanto tempo ci vuole davvero? Ecco la suddivisione onesta.

Nelle nostre build, il tempo si divide all'incirca così: 3-5 ore su auth e refresh dei token, 4-6 sul mapping dei campi e lo strato di formattazione per la sintesi vocale, 4-8 sulla gestione dei fallback e dei timeout, 3-5 sull'idempotenza e la deduplicazione, e il resto sui test contro traffico reale di chiamate. Il primo CRM insegna il pattern; il secondo e il terzo vanno più veloci, ma ognuno ha la sua trappola, come il mancante webhook per i campi personalizzati di Pipedrive.

Costruire o comprare? Se hai uno sviluppatore che può ospitare un endpoint webhook e stai integrando un solo CRM, costruiscilo. Questo post è la tua guida. Se hai bisogno di tre CRM, auth multi-tenant e qualcuno di guardia quando HubSpot ti applica il rate limit alle 9 di mattina, il calcolo cambia. Analizziamo quella decisione nel dettaglio nella nostra guida costruire vs comprare, e il breakdown dei prezzi mostra quanto il lavoro di integrazione aggiunge a una build.

Se preferisci non dover gestire tutto questo, noi lo facciamo per i clienti. Techsy realizza agenti vocali in produzione integrati al tuo CRM: le letture via function call, i write-back via webhook, la gestione dei fallback, tutto. Nessuna pressione in nessun senso; il codice sopra è tuo da eseguire comunque.

Sull'autore

Mert Batur Gurbuz è co-fondatore di Techsy.io, dove il team realizza agenti AI, sistemi di automazione e pipeline vocali/SDR per clienti B2B. Studia all'Università di Birmingham e scrive sullo stack di strumenti LLM che il team Techsy usa effettivamente in produzione. Connettiti su LinkedIn.

Domande frequenti

Come si integra un agente vocale AI con un CRM?

Colleghi l'agente al CRM in due modi: function calling per le letture live durante la chiamata, e un webhook per la scrittura post-chiamata. L'agente cerca il chiamante in tempo reale tramite il tuo endpoint, poi un webhook di fine chiamata attiva il tuo handler, che registra un'Attività e aggiorna lo stage del deal nel CRM.

Un agente vocale può recuperare dati CRM durante una chiamata?

Sì. L'agente usa il function calling per colpire il tuo endpoint di lookup, che interroga il CRM e restituisce il contatto e i dati del deal prima della frase successiva dell'agente. Imposta un timeout dello strumento a 5 secondi e una frase di fallback parlata, perché su una chiamata live stai correndo contro la pazienza del chiamante, non dell'API.

Come si registrano le chiamate di un agente vocale AI in un CRM?

Ricevi il webhook di fine chiamata della piattaforma, che porta la trascrizione, il sommario, la disposizione e l'URL della registrazione. Il tuo handler estrae queste informazioni, invia via POST un'Attività o engagement di chiamata al CRM associata al contatto, e imposta lo stato del lead. Nessuna pressione di latenza, dato che il chiamante ha già riagganciato.

Qual è la differenza tra un webhook e il function calling per gli agenti vocali?

Il function calling è una lettura live durante la chiamata: l'agente fa una domanda al CRM a metà conversazione e usa subito la risposta. Un webhook è una scrittura post-chiamata: la piattaforma invia il risultato della chiamata al tuo server dopo la fine della chiamata. Il function calling corre contro il tempo; i webhook no.

Vapi si integra con HubSpot, Salesforce e Pipedrive?

Vapi non fornisce connettori nativi per tutti e tre, ma si integra con ciascuno attraverso i suoi strumenti di function call (letture live) e i webhook dell'URL server (scritture post-chiamata). Puntai quelli al tuo endpoint, che comunica con HubSpot, Salesforce o Pipedrive tramite le loro REST API. Il pattern è identico per tutti e tre i CRM.

Come si mappano i dati della chiamata sui campi CRM personalizzati?

Mantieni un oggetto di configurazione che mappa ogni campo di dati della chiamata a un oggetto e campo CRM. Per HubSpot e Salesforce, i campi personalizzati usano nomi interni leggibili. Pipedrive referenzia i campi personalizzati tramite una chiave hash di 40 caratteri, quindi il tuo config memorizza l'hash, non un nome intuitivo. Formatta i valori per la sintesi vocale prima che l'agente li legga ad alta voce.

Un agente vocale può aggiornare il mio CRM in tempo reale durante la chiamata?

Può leggere in tempo reale, ma la maggior parte delle build in produzione rinvia le scritture a dopo la chiamata. Le letture live devono essere veloci e sono sicure. Le scritture live rischiano latenza e aggiornamenti parziali se la chiamata cade a metà scrittura. Il pattern standard è leggere in tempo reale, scrivere sul webhook di fine chiamata, il che protegge l'esperienza del chiamante.

Come si evita che un agente vocale crei record CRM duplicati?

Usa una chiave di idempotenza; l'ID chiamata è perfetto. Prima che il tuo handler scriva qualcosa, controlla se hai già elaborato quell'ID chiamata; se sì, restituisci 200 e salta. Memorizza la chiave in Redis o in un database con un vincolo unico, non in memoria, così sopravvive ai riavvii. I webhook ritentano, quindi questo non è facoltativo.

Retell si integra con Pipedrive?

Retell si integra con Pipedrive attraverso lo stesso pattern di function call e webhook di qualsiasi CRM, anche dove non è elencato un connettore nativo. Colleghi gli eventi di chiamata di Retell al tuo endpoint, che usa le API di Activities e Deals di Pipedrive. Attenzione alla limitazione sui campi personalizzati: Pipedrive non ha webhook per le modifiche ai campi personalizzati, quindi fai polling su dealFields.

Quanto tempo ci vuole per costruire un'integrazione agente vocale-CRM?

Circa 20-40 ore per CRM per una build di livello produzione. Il percorso felice è veloce; il tempo va in auth e refresh dei token, mapping dei campi, gestione dei fallback e dei timeout, idempotenza e test contro traffico reale di chiamate. Il primo CRM è il più lento perché insegna il pattern. Ogni CRM aggiuntivo ha ancora le sue peculiarità.

Tag

integrazione voice agent crmvapi hubspot integrazionefunction callingwebhookpipedrive

Condividi questo articolo

Articoli correlati

Altri in ai-machine-learning

ai-machine-learning
Jul 24, 2026

Claude Opus 5 è arrivato: intelligenza quasi da Fable 5 a metà prezzo

Anthropic ha rilasciato Claude Opus 5 il 24 luglio 2026. Più che raddoppia Opus 4.8 su Frontier-Bench e mantiene il prezzo di Opus, ma perde qualche test contro Fable 5 e Mythos 5. Ecco la tabella dei benchmark, i prezzi e una valutazione passare/aspettare/restare.

10 min read lettura
Leggi
ai-machine-learning
Jul 20, 2026

8 Migliori API di Web Scraping IA nel 2026 (Testate sul Nostro Stack di Agenti)

Abbiamo testato 8 API di web scraping IA con prezzi reali del 2026 raccolti tramite il nostro stack di agenti. Firecrawl, Bright Data, ScrapingBee e altre 5, classificate per output pronto per LLM, anti-bot e supporto MCP.

9 min di lettura lettura
Leggi
ai-machine-learning
Jul 20, 2026

Prompt Engineering per Programmare: 7 Pattern che Usiamo Ogni Giorno in Claude Code e Cursor (2026)

La maggior parte degli articoli sui 'prompt per il coding con l'IA' ti passa 50 template da copiare. Questo insegna i 7 pattern che usiamo ogni giorno per gestire una pipeline di 16 agenti Claude Code, con un vero prima-e-dopo per ciascuno, più dove trovare ogni pattern in Claude Code, Cursor e Copilot nel 2026.

11 min di lettura lettura
Leggi
Vedi tutti gli articoli
Il Tuo Prossimo Passo

Hai un progetto in mente? Parliamone.

Prenota una call di 30 minuti. Ti ascoltiamo, capiamo il problema e ti diciamo se possiamo aiutarti.

Prenota una call di scoping da 30 minVedi i nostri lavori

In evidenza dalla libreria

Claude Skills

Vedi tutto
  • New Post

    Full SEO blog pipeline: research, brief, write, validate, image, translate, publish to Sanity. Autonomous from start to finish.

  • Content Refresh

    Audit a stale post, find decay drivers, and ship a SERP-aligned refresh without losing existing rankings.

  • SEO Audit

    Site-wide SEO audit with prioritized fix list: technical, on-page, and EEAT signals.

Automazioni AI

Vedi tutto
  • Auditor di Sicurezza

    Scan SCA + IaC settimanale con PR di fix in ordine di priorità.

  • Redattore di Cold Email

    Genera email di primo contatto ancorate a un dettaglio pubblico specifico.

  • Agent di Ricerca Lead

    Arricchisce un'email in un profilo, valuta il fit e avvisa su Slack.

In evidenza dalla libreria

Claude Skills

Vedi tutto
  • New Post

    Full SEO blog pipeline: research, brief, write, validate, image, translate, publish to Sanity. Autonomous from start to finish.

  • Content Refresh

    Audit a stale post, find decay drivers, and ship a SERP-aligned refresh without losing existing rankings.

  • SEO Audit

    Site-wide SEO audit with prioritized fix list: technical, on-page, and EEAT signals.

Automazioni AI

Vedi tutto
  • Auditor di Sicurezza

    Scan SCA + IaC settimanale con PR di fix in ordine di priorità.

  • Redattore di Cold Email

    Genera email di primo contatto ancorate a un dettaglio pubblico specifico.

  • Agent di Ricerca Lead

    Arricchisce un'email in un profilo, valuta il fit e avvisa su Slack.

Servizi

  • Soluzioni Enterprise
  • App mobile
  • Applicazioni Web

Soluzioni

  • Sistemi CRM
  • Integrazione AI
  • Soluzioni ERP
  • Agenti Vocali
  • Automazione dei Processi
  • Cybersecurity

Biblioteca

  • Blog
  • Portfolio

Community

  • Automazioni AI
  • Claude Skills

Strumenti

  • Calcolatore costo app mobile
  • Calcolatore costo API OpenAI / LLM
  • Calcolatore costo MVP
  • Calcolatore costo voice agent AI

Azienda

  • Chi siamo
  • Partner
  • Contatti

Legale

  • Privacy Policy
  • Termini di servizio
  • Cookie Policy

Servizi

  • Soluzioni Enterprise
  • App mobile
  • Applicazioni Web

Soluzioni

  • Sistemi CRM
  • Integrazione AI
  • Soluzioni ERP
  • Agenti Vocali
  • Automazione dei Processi
  • Cybersecurity

Biblioteca

  • Blog
  • Portfolio

Community

  • Automazioni AI
  • Claude Skills

Strumenti

  • Calcolatore costo app mobile
  • Calcolatore costo API OpenAI / LLM
  • Calcolatore costo MVP
  • Calcolatore costo voice agent AI

Azienda

  • Chi siamo
  • Partner
  • Contatti
LegalePrivacy PolicyTermini di servizioCookie Policy
TECHSY
© 2026 Techsy. Tutti i diritti riservati.