Techsy
Bize Ulaşın
Başla
Bloga Dön
ai-machine-learning

Yapay Zeka Sesli Ajanlarını CRM'e Bağlamak: HubSpot, Salesforce ve Pipedrive (Webhook Koduyla)

Yazan Mert Batur Gürbüz
Jun 10, 2026
14 okuma
İçindekiler
Yapay Zeka Sesli Ajanlarını CRM'e Bağlamak: HubSpot, Salesforce ve Pipedrive (Webhook Koduyla)

Yapay Zeka Sesli Ajanlarını CRM'e Bağlamak: HubSpot, Salesforce ve Pipedrive (Webhook Koduyla)

Bu yılın başında teslim ettiğimiz bir Vapi projesinde sesli ajan → kendi arama API'miz → HubSpot kişi okuma yolu p50'de 410ms, p95'te 1.240ms sürdü. Bu rakam bu yazının var olma nedeni. Sesli ajan CRM entegrasyonu, arayanın kontrol ettiği bir saate göre yaşar ya da ölür. Bir Zapier senkronizasyonu gibi kurarsanız, webhook kör kör ilerlerken ajan cümle ortasında susar. Çözüm daha fazla API çağrısı değil. İki kalıp, bir timeout ve bir geri dönüş cümlesi. İşte üçü de, doğrudan kullanabileceğiniz kodla birlikte.

Bu konudaki kılavuzların büyük çoğunluğu fikri öğretip ardından ürün satar. Handler'ı kimse göndermez. Biz tam tersini yapıyoruz.

Önemli Çıkarımlar

  • Sesli ajanlar CRM'e iki şekilde bağlanır: çağrı sırasında canlı okumalar için function calling, çağrı sonrası yazmalar için webhook.
  • Çağrı sırasındaki okumalar, arayanın sessizlik duymaması için 5 saniyelik bir bütçe ve söylenen bir geri dönüş cümlesi gerektirir.
  • Çağrı verilerini CRM alanlarına idempotency anahtarıyla eşleyin; böylece yeniden denenen webhook'lar mükerrer kayıt oluşturmaz.
  • Pipedrive'ın özel alan değişiklikleri için webhook'u yoktur; bunun yerine dealFields uç noktasını zamanlanmış bir görevle sorgularsınız.

"Sesli Ajan CRM Entegrasyonu" Gerçekte Ne Anlama Gelir? (2 Yöntem, 1 Değil)

Sesli ajan CRM entegrasyonu, sesli ajanı CRM'inize iki farklı şekilde bağlar: arayan hattayken canlı veri okumaları için function calling ve çağrı sonucunu geri yazmak için webhook. Canlı okuma konuşmayı kişiselleştirir; çağrı sonrası yazma ne olduğunu kaydeder. Farklı saatlerde çalışırlar ve farklı şekillerde başarısız olurlar.

Tek cümlelik zihinsel model şu: function calling, sesli ajanın cümle ortasında CRM'inize soru sormasıdır; webhook ise ajanın kapatıp raporunu doldurmasıdır.

Function calling: veriyi canlı okumak

Function calling, bir LLM'nin metin üretmeyi durdurup tanımladığınız harici bir araç çağırması ve sonucu söyleyeceklerine dahil etmesidir. Sesli ajan için bu araç "bu arayanı CRM'de ara" işlevidir. Model veriye ihtiyaç duyduğuna karar verir, sunucunuz onu çeker ve ajan arayanı adıyla, plan katmanıyla selamlar. Daha derin mekanikleri merak ediyorsanız function calling rehberimiz araç tanım şemasını ayrıntısıyla açıklar. Tek sorun: bu işlem canlı gerçekleşir, dolayısıyla arayanın sabrıyla yarışırsınız.

Webhook: veriyi sonradan yazmak

Webhook, bir şey tamamlandığında sunucunuzun aldığı bir POST isteğidir. Sesli ajanlar için en önemlisi çağrı sonu olayıdır: platform çağrı biter bitmez size transkripti, özeti, durumu ve kayıt URL'ini gönderir. Siz bu veriyi CRM'e bir Aktivite olarak yazarsınız, ardından fırsat aşamasını ilerletirsiniz. Burada gecikme baskısı yoktur. Arayan gitmiştir. Yeniden deneyebilir, kuyruğa alabilir ve mutabakat sağlayabilirsiniz.

Üretim entegrasyonlarının büyük çoğunluğu ikisini birden kullanır. Canlı okuyun, sonra yazın.

Mimari: Gelen Bir Çağrıda Baştan Sona Ne Olur?

Sesli ajan CRM entegrasyonu, her gelen çağrıda sabit beş adımlı bir yaşam döngüsü izler. Çağrı gelir, ajan arayanın kaydını function call aracılığıyla canlı okur, konuşma gerçekleşir, bir çağrı sonu webhook'u tetiklenir ve handler'ınız sonucu CRM'e yazar, gerekiyorsa bir ekip üyesini bilgilendirir. Bu yazıdaki tüm kod örnekleri bu beş adımdan birine bağlıdır.

Adım adım akış:

  1. Gelen çağrı gelir. Platform (Vapi, Retell ya da kendi sesli ajan altyapınız) telefonu açar ve arayanı telefon numarasıyla tanımlar.
  2. Canlı arama (function call). Ajan arama aracınızı çağırır; bu araç CRM'i sorgular ve kişiyi, fırsat aşamasını ve son bağlamı döndürür.
  3. Konuşma. Ajan konuşur, gerekirse daha fazla araç çağırır (randevu slotlarını kontrol etmek, sipariş aramak gibi).
  4. Çağrı sonu webhook. Çağrı biter, platform sunucunuza bir çağrı sonu raporu POST'lar.
  5. CRM yazma + devir teslim. Handler'ınız Aktiviteyi kaydeder, durumu ayarlar, fırsatı ilerletir ve ekip temsilcisi için tam bağlamla bir görev oluşturur.

Kapak görseli tam olarak bunu eşler: bir gelen ok, "canlı okuma" ve "çağrı sonrası yazma"ya ayrılış, üç CRM hedef kartı ve bir devir teslim düğümü. Bu resmi aklınızda tutun. Aşağıdaki her şey sadece kutuları doldurmaktır.

Çağrı Sırasında CRM Verisi Okumak (ve Neden 5 Saniyelik Bütçeniz Var?)

Evet, sesli ajan çağrı sırasında CRM verisi çekebilir. Bunun için arama uç noktanıza çarpan ve ajanın bir sonraki cümlesinden önce dönen bir function call kullanır. Kısıtlama zamanla ilgilidir. Vapi'nin sunucu olayları belgelerine göre function tool call'lar bir timeout'a karşı çalışır; canlı çağrıda gerçek tavanınız API'nin değil arayanın sabrıdır. Beş saniye bütçeleyin ve bir geri dönüş hattınız olsun.

SERP'teki hiç kimsenin ölçmediği kısım şu: Vapi → iç arama API'si → HubSpot kişi okuma yolumuzda birkaç bin çağrı boyunca p50'de 410ms, p95'te 1.240ms gidiş-dönüş kaydettik. Çoğu okuma hızlı. Ama p95 kuyruğu (HubSpot oran sınırı geri çekilmesi, soğuk bir lambda, yavaş bir ilişki sorgusu) çağrıların sustuğu yerdir. Bu yüzden function-call araç timeout'unu 5 saniyeye ayarladık: p95'in rahatlıkla üzerinde, bir insanın "merhaba? orada mısınız?" diyeceği noktanın rahatlıkla altında.

Ve önemli kural şu: CRM aramanız arayanın sabrından uzun sürüyorsa, ajan bir şey söylemelidir. Sessizliğe asla izin vermeyin. Ölü hava, bir çağrıyı kaybetmenin en hızlı yoludur. Kendi projelerimizde ajan, araç timeout'a düşer düşmez bir geri dönüş cümlesi söyler: "Bir saniye, bilgilerinizi getiriyorum." Arayan bozuk bir bot değil, insan gibi bir duraklama duyar.

Canlı CRM araması için gönderdiğimiz function-call araç tanımı şu:

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
  }
}

Bu tanımı sesli kullanım için güvenli kılan iki şey var. timeoutSeconds: 5 tavanı ajanın sonsuza kadar beklemeye almasını engeller. server.url ise doğrudan CRM'e değil kendi uç noktanıza işaret eder; böylece önbellekleme, yeniden deneme ve dönen verinin şekli sizin kontrolünüzdedir. Kendi deneyimimize göre ajan ile CRM arasına dahili bir API koymak alabileceğiniz en iyi kararın tekidir; geri dönüş mantığı ve alan eşleme orada yaşar.

Çağrı Sonrası Geri Yazmak: Aktiviteyi, Özeti ve Durumu Kaydetmek

Bir yapay zeka sesli ajan çağrısını CRM'e kaydetmek için platformun çağrı sonu webhook'unu alır, transkripti, özeti ve durumu çıkarır, ardından CRM'e kişiyle ilişkilendirilmiş bir çağrı Aktivitesi POST'lar ve müşteri adayı durumunu ayarlarsınız. Burada gecikme baskısı yoktur (arayan gitti), dolayısıyla ağır yazmaları, yeniden denemeleri ve canlı çağrı sırasında asla göze alamayacağınız fırsat aşama geçişlerini burada yaparsınız.

Çağrı sonu verisi (Vapi buna sunucu olayları belgelerinde end-of-call-report olayı der) transkripti, oluşturulmuş özeti, çağrı sonucunu, kayıt URL'ini ve çağrı süresini taşır. Sizin işiniz bunu CRM Aktivitesiyle eşlemek ve kaydı ilerletmektir.

Aşağıda raporu alıp bir HubSpot çağrı engagement'ı yazan ve ardından fırsat aşamasını ilerletenler çalışır bir Node/TypeScript handler'ı var. POST /crm/v3/objects/calls uç noktası ve kişiye ilişkilendirme kalıbı HubSpot'un çağrılar API rehberinden geliyor:

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);

H1'in vaat ettiği işte buydu: bir açıklaması değil, kullanıma hazır handler. Bunu elle kodlayıp barındırmak istemiyorsanız, n8n gibi kodsuz bir iş akışı alternatifi aynı webhook'u alıp CRM'e görsel düğümlerle yazabilir; yeniden deneme ve hata yönetimi üzerindeki kontrol pahasına.

Çağrı Verilerini CRM Alanlarıyla Eşlemek (Mükerrer Kayıt Oluşturmadan)

Alan eşleme, her çağrı verisini belirli bir CRM nesnesine ve alanına bağlar: arayan niyetini fırsat özelliğine, durumu müşteri adayı durumuna, özeti Aktivite gövdesine. Üretimdeki iki sorun burada ısırır: ajanın sesli okuması için veriyi formatlamak ve yeniden denenen webhook'un aynı çağrı için ikinci kayıt oluşturmaması adına idempotency anahtarı kullanmak.

Kendi projelerimizde eşlemeyi tek bir yapılandırma nesnesinde tutuyoruz; böylece mühendis olmayanlar handler'a dokunmadan düzenleyebilir. Gerçek birinin şekli şöyle:

Çağrı verisiCRM nesnesi.alanıTürÖrnek
arayan niyetideal.intent_summarystring"Pro plan demo istiyor"
durumcontact.lead_statusenum"qualified"
çağrı özeticall.hs_call_bodystring"Fiyatlandırma tartışıldı, demo ayarlandı"
kayıt URLcall.hs_call_recording_urlurl"https://..."
süre (ms)call.hs_call_durationnumber184000
nitelikli bayrakdeal.dealstageenum"qualifiedtobuy"

Birinci sorun: konuşmaya uygun formatlama. Ham JSON'ı arayana okuyan sesli ajan bozuk duyulur. CRM verisini modele göndermeden önce cümleye çevirin. Modele {"plan":"pro","renewed":"2026-03"} döndürmeyin. "Pro plandalar, geçen Mart'ta yenilendi" döndürün; ajan bunu doğal biçimde söylesin.

İkinci sorun: idempotency. Sesli platformlar webhook'ları yeniden dener. Handler'ınız idempotent değilse aynı çağrı iki kez kaydedilir ve mükerrer kayıt alırsınız. Çağrı ID'sini anahtar olarak kullanın:

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

Üretimdeki store, sunucu yeniden başlatıldığında belleğini kaybeden bellekteki Set değil, çağrı ID'sinde benzersiz kısıtlı Redis veya bir veritabanı satırıdır. Yukarıdaki Set demo için işe yarar; üretim için değil.

CRM'e özel bölümlerden önce, sesli kullanım açısından gerçekten önemli olan şeyler bakımından üç platformun farkı:

HubSpotSalesforcePipedrive
Aktivite/çağrı nesnesiengagement / crm/v3/objects/callsTask / ActivityActivity
Fırsat nesnesiDealOpportunityDeal
Kimlik doğrulamaOAuth / private app tokenOAuthAPI token / OAuth
Çağrı sonrası yazmaengagement APIREST / CompositeActivities API
Özel alan webhookevetevethayır, dealFields'ı sorgulayın

HubSpot Entegrasyonu (Vapi → HubSpot, Adım Adım)

Vapi → HubSpot entegrasyonu için canlı okumayı Kişi aramasına, çağrı sonrası yazmayı da söz konusu Kişi ve Deal'ine ilişkilendirilmiş bir çağrı engagement'ına eşlersiniz. HubSpot'un nesne modeli Kişi, Deal ve engagement'tan (Aktivite) oluşur; yazma hedefiniz POST /crm/v3/objects/calls uç noktasıdır. Bu, çoğu araştırmacının gerçekte aradığı vapi hubspot entegrasyonu kalıbıdır.

Canlı okuma, telefon numarasına göre GET /crm/v3/objects/contacts/search sorgulayan ve Kişiyle açık Deal'i döndüren arama uç noktanıza yapılan bir function call'dur. Çağrı sonrası yazma ise yukarıdaki bölümdeki handler'dır: bir çağrı engagement'ı oluşturur, ilişkilendirme tipi 194 üzerinden Kişiyle ilişkilendirir, ardından Deal'in dealstage'ini PATCH'ler.

İnsanların atladığı detay: HubSpot ilişkilendirmeleri tiplenmiştir. Çağrıdan kişiye ilişkilendirme belirli bir associationTypeId kullanır; bunu atlarsanız çağrı kişinin zaman çizelgesinde görünmez. HubSpot'un çağrılar API rehberi ID'leri listeler. Kimlik doğrulama için private app token tek bir çalışma alanında en hızlı yoldur; bunu birden fazla HubSpot hesabına gönderiyorsanız OAuth kullanın.

Salesforce Entegrasyonu (Nesneler, Kimlik Doğrulama, Gerçek Zamanlı Okuma/Yazma)

Salesforce sesli ajan entegrasyonu, çağrı sırasında Kişi veya Aday'dan okur ve sonrasında bir Görev (Aktivite nesnesi) yazar. Deal, Opportunity'de yaşar. Kalıp HubSpot'la aynıdır (canlı function-call okuma, çağrı sonrası yazma) ama nesne adları ve kimlik doğrulama akışı farklıdır. Yazma için REST API'ye veya Composite API'ye çarparsınız.

Canlı okuma için arama uç noktanız Salesforce'u SELECT Id, Name, Account.Name FROM Contact WHERE Phone = '...' gibi bir SOQL isteğiyle sorgular ve ajana döndürür. Çağrı sonrası yazma için Salesforce REST API rehberine göre WhoId'si Kişi/Aday'a ve WhatId'si Opportunity'e ayarlanmış bir Görev oluşturursunuz:

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),
    }),
  }
);

Sesle özel sorun şu: Salesforce OAuth token'ları sona erer ve canlı okuma için 5 saniyelik bütçenizi token yenileme sürecinin yarışmasını istemezsiniz. Token'ları arka planda bir zamanlamaya göre yenileyin, access token'ı önbelleğe alın ve sıcak tutun; böylece canlı arama asla yenileme maliyetini ödemez.

Pipedrive Entegrasyonu (Herkesin Atladığı)

Pipedrive entegrasyonu Kişiler, Deal'ler ve Aktiviteler üzerinden çalışır ve gerçek bir tuzağı vardır: özel alan değişiklikleri için webhook yoktur. Sesli ajanınız özel bir alan yazıyor ve bu değişikliğe başka bir yerde tepki vermeniz gerekiyorsa buna abone olamazsınız. Pipedrive, özel alan değiştiğinde size webhook göndermez; bunun yerine dealFields'ı zamanlanmış bir görevle sorgulamanız gerekir. Bunu neredeyse kimse ele almaz; bu yüzden sesli ajan Pipedrive entegrasyonları ince biçimlerde kırılır.

Sesli yaşam döngüsü temiz bir şekilde eşlenir: canlı okuma telefona göre GET /persons/search sorgular, çağrı sonrası yazma Kişi ve Deal'e bağlı bir Aktivite oluşturur (POST /activities), nitelendirme ise Deal'i bir sonraki aşamaya taşır. Standart şeyler.

Tuzak özel alanlarda. Pipedrive'da özel alanlar insan tarafından okunabilir bir adla değil 40 karakterlik bir hash anahtarıyla referans gösterilir; bu yüzden eşleme yapılandırmanızın plan_tier yerine dcf558aba6... gibi bir şey depolaması gerekir. Pipedrive'ın DealFields belgelerine göre bunlar için değişiklik olayı yoktur. Aşağı akış sisteminin ajanın özel alan güncellemesini bilmesi gerekiyorsa, GET /dealFields sorgulayıp son anlık görüntünüzle farkı alırsınız; bir cron ile. Zarif değil. Sadece Pipedrive'ın çalışma şekli bu; bunu sabah 2'de üretimde keşfetmek burada okumaktan çok daha kötü.

Müşteri Adayı Nitelendirme Devri: Deal'i İlerletmek ve Ekip Temsilcisini Bilgilendirmek

Devir teslim, sesli ajanın nitelendirmede deal aşamasını ilerlettiği, ekip temsilcisi için bir görev oluşturduğu ve temsilcinin konuşmayı bağlamıyla birlikte teslim aldığı yerdir. Doğru yapıldığında temsilci, soğuk bir isim ve telefon numarası değil, notları eklenmiş sıcak, nitelikli bir müşteri adayı devralır.

Mekanik olarak hepsi çağrı sonrası handler'da üç yazmadır: deal'i nitelikli aşamaya PATCH'leyin, temsilciye atanmış ve son tarihi olan bir Aktivite/Görev POST'layın, çağrı özetini görev gövdesine koyun. Temsilci CRM'ini açar, "Yapay zeka nitelendirdi: Pro demo istiyor, bütçe onaylandı, Perşembeyi tercih ediyor" görür ve hazırlıklı biçimde geri arar.

Hangi motorun üzerine inşa edeceğinize henüz karar veriyorsanız, hangi platformun CRM entegrasyonunu en iyi yönettiğine ilişkin karşılaştırmamız Vapi, Retell ve Bland'ın çağrı meta verilerini ve webhook olaylarını nasıl ortaya çıkardığını ele alır; bu fark devir tesliminin ne kadar temiz olacağını doğrudan etkiler.

Kendiniz Yapmak mı, Dışarıya Vermek mi? (Dürüst Saatler)

Üretim kalitesinde bir sesli ajan CRM entegrasyonu inşa etmek her CRM başına yaklaşık 20-40 saat sürer; saatler tahmin ettiğiniz yerlere gitmiyor. Mutlu yol okuma-yazması belki bir gün. Gerisi kimlik doğrulama token yönetimi, alan eşleme, geri dönüş yönetimi, idempotency ve CRM'in oran sınırları ile tuhaflıklarına karşı test etmektir. Peki bu gerçekten ne kadar sürer? İşte dürüst dökümü.

Kendi projelerimizde süre şöyle dağılıyor: kimlik doğrulama ve token yenilemede 3-5 saat, alan eşleme ve konuşmaya uygun formatlama katmanında 4-6 saat, geri dönüş ve timeout yönetiminde 4-8 saat, idempotency ve tekilleştirmede 3-5 saat, geri kalanı gerçek çağrı trafiğine karşı test etmektir. İlk CRM kalıbı öğretir; ikinci ve üçüncü daha hızlı gider ama her birinin kendine özgü tuzağı vardır; Pipedrive'ın özel alan webhook'unun yokluğu gibi.

Yapmalı mısınız yoksa satın mı almalısınız? Webhook uç noktası barındırabilecek bir geliştiriciye sahipseniz ve tek bir CRM entegre ediyorsanız, yapın. Bu yazı planınızdır. Üç CRM'e, çok kiracılı kimlik doğrulamaya ve HubSpot sizi saat 9'da oran sınırına alırken aramaya hazır birine ihtiyacınız varsa, hesap değişir. Bu kararı kendiniz yapın mı dışarıya mı verin rehberimizde ayrıntılı olarak ele alıyoruz; fiyatlandırma dökümümüz ise entegrasyon çalışmasının bir projeye ne kadar eklediğini gösteriyor.

Bunların hiçbirini yönetmek istemiyorsanız, bunu müşteriler için yapıyoruz. Techsy, CRM'inize bağlı üretim sesli ajanları sunar: function-call okumaları, webhook geri yazmaları, geri dönüş yönetimi, hepsi dahil. Baskı yok; yukarıdaki kod her iki durumda da kullanımınıza açık.

Yazar Hakkında

Mert Batur Gürbüz, Techsy.io'nun Kurucu Ortağı olup ekip B2B müşteriler için yapay zeka ajanları, otomasyon sistemleri ve sesli/SDR pipeline'ları oluşturmaktadır. Birmingham Üniversitesi'nde öğrenim görmekte ve Techsy ekibinin üretimde gerçekten kullandığı LLM araç yığını hakkında yazmaktadır. LinkedIn üzerinden bağlantı kurabilirsiniz.

Sıkça Sorulan Sorular

Yapay zeka sesli ajanı CRM ile nasıl entegre edilir?

Ajanı CRM'e iki şekilde bağlarsınız: çağrı sırasında canlı okumalar için function calling ve çağrı sonrası yazma için webhook. Ajan arayanı uç noktanız aracılığıyla canlı olarak arar, ardından çağrı sonu webhook'u handler'ınızı tetikler; bu handler CRM'e bir Aktivite kaydeder ve deal aşamasını günceller.

Sesli ajan çağrı sırasında CRM verisi çekebilir mi?

Evet. Ajan, arama uç noktanıza çarpan function calling kullanır; bu araç CRM'i sorgular ve ajanın bir sonraki cümlesinden önce kişi ve deal verisini döndürür. Canlı bir çağrıda API'nin değil arayanın sabrıyla yarıştığınız için 5 saniyelik araç timeout'u ve söylenen bir geri dönüş hattı ayarlayın.

Yapay zeka sesli ajan çağrılarını CRM'e nasıl kaydedersiniz?

Platformun çağrı sonu webhook'unu alırsınız; bu webhook transkripti, özeti, durumu ve kayıt URL'ini taşır. Handler'ınız bunları çıkarır, kişiyle ilişkilendirilmiş bir çağrı Aktivitesi veya engagement'ı CRM'e POST'lar ve müşteri adayı durumunu ayarlar. Arayan zaten kapatmış olduğundan burada gecikme baskısı yoktur.

Sesli ajanlar için webhook ile function calling arasındaki fark nedir?

Function calling, çağrı sırasında canlı bir okumadır: ajan konuşma ortasında CRM'inize soru sorar ve yanıtı hemen kullanır. Webhook ise çağrı sonrası bir yazmadır: platform çağrı bittikten sonra çağrı sonucunu sunucunuza POST'lar. Function calling saatlerle yarışır; webhook'lar yarışmaz.

Vapi, HubSpot, Salesforce ve Pipedrive ile entegre olur mu?

Vapi bu üçü için hazır bağlayıcı sunmaz, ancak function-call araçları (canlı okumalar) ve sunucu URL webhook'ları (çağrı sonrası yazmalar) aracılığıyla herhangi biriyle entegre olur. Bu araçları, HubSpot, Salesforce veya Pipedrive ile kendi REST API'leri üzerinden konuşan kendi uç noktanıza yönlendirirsiniz. Kalıp üç CRM'de de aynıdır.

Çağrı verilerini CRM özel alanlarına nasıl eşlersiniz?

Her çağrı verisi alanını bir CRM nesnesine ve alanına eşleyen bir yapılandırma nesnesi tutun. HubSpot ve Salesforce'ta özel alanlar okunabilir dahili adlar kullanır. Pipedrive özel alanları 40 karakterlik hash anahtarıyla referans gösterir; bu yüzden yapılandırmanız kolay okunur bir ad değil hash'i saklar. Ajan bunları sesli okumadan önce konuşmaya uygun biçimde formatlayın.

Sesli ajan çağrı sırasında CRM'i gerçek zamanlı güncelleyebilir mi?

Gerçek zamanlı okuyabilir; ancak üretim projelerinin büyük çoğunluğu yazmaları çağrı sonrasına erteler. Canlı okumalar hızlı olmalı ve güvenlidir. Canlı yazmalar ise gecikme riski taşır; ayrıca çağrı yazma ortasında düşerse kısmi güncelleme oluşur. Standart kalıp canlı oku, çağrı sonu webhook'unda yaz; bu arayan deneyimini korur.

Sesli ajanın mükerrer CRM kaydı oluşturmasını nasıl engellersiniz?

İdempotency anahtarı kullanın; çağrı ID'si bunun için mükemmeldir. Handler'ınız herhangi bir yazma yapmadan önce o çağrı ID'sini daha önce işleyip işlemediğinizi kontrol edin; öyleyse 200 döndürün ve atlayın. Anahtarı bellekte değil, sunucu yeniden başlatmalarında hayatta kalan ve çağrı ID'sinde benzersiz kısıt olan Redis veya veritabanında saklayın. Webhook'lar yeniden dener, bu yüzden idempotency zorunludur.

Retell, Pipedrive ile entegre olur mu?

Retell, yerleşik bir bağlayıcı listelenmese bile herhangi bir CRM'de olduğu gibi aynı function-call ve webhook kalıbıyla Pipedrive ile entegre olur. Retell'in çağrı olaylarını Pipedrive'ın Activities ve Deals API'lerini kullanan uç noktanıza yönlendirirsiniz. Özel alan sınırlamasına dikkat edin: Pipedrive'ın özel alan değişiklikleri için webhook'u yoktur, bunun yerine dealFields sorgularsınız.

Sesli ajan CRM entegrasyonu oluşturmak ne kadar sürer?

Üretim kalitesinde bir proje için her CRM başına yaklaşık 20-40 saat. Mutlu yol hızlıdır; süre kimlik doğrulama ve token yenileme, alan eşleme, geri dönüş ve timeout yönetimi, idempotency ve gerçek çağrı trafiğine karşı testedir. İlk CRM en yavaşıdır çünkü kalıbı öğretir. Sonraki CRM'lerin hepsinin kendine özgü tuhaflıkları vardır.

Etiketler

sesli ajan crm entegrasyonuvapi hubspot entegrasyonufunction callingwebhookpipedrive

Bu makaleyi paylaş

İlgili Makaleler

Daha fazla ai-machine-learning

ai-machine-learning
Jul 24, 2026

Claude Opus 5 Geldi: Fable 5'e Yakın Zeka, Yarı Fiyata

Anthropic, 24 Temmuz 2026'da Claude Opus 5'i yayınladı. Frontier-Bench'te Opus 4.8'i ikiye katlıyor, Opus fiyatını koruyor ama birkaç testte Fable 5 ve Mythos 5'e geçiliyor. İşte benchmark tablosu, fiyatlandırma ve geç/geçme/kal değerlendirmesi.

10 min read okuma
Oku
ai-machine-learning
Jul 20, 2026

2026'nın En İyi 8 Yapay Zeka Web Scraping API'si (Kendi Agent Stack'imizde Test Edildi)

8 yapay zeka web scraping API'sini kendi agent stack'imiz üzerinden çektiğimiz gerçek 2026 fiyatlarıyla test ettik. Firecrawl, Bright Data, ScrapingBee ve 5 tane daha; LLM'e hazır çıktı, anti-bot başarısı ve MCP desteğine göre sıraladık.

9 dk okuma okuma
Oku
ai-machine-learning
Jul 20, 2026

Kodlama İçin Prompt Mühendisliği: Claude Code ve Cursor'da Her Gün Kullandığımız 7 Kalıp (2026)

Çoğu 'yapay zeka kodlama promptları' yazısı size kopyalayıp yapıştırmanız için 50 şablon verir. Bu yazı ise 16 ajanlı bir Claude Code pipeline'ını her gün çalıştırmak için kullandığımız 7 kalıbı, her biri için gerçek bir öncesi-sonrası örneğiyle ve 2026'da Claude Code, Cursor ve Copilot'ta her kalıbın nerede karşılığını bulduğuyla birlikte anlatıyor.

11 dakikalık okuma okuma
Oku
Tüm Yazıları Görüntüle
Projenize Başlayın

Harika bir şey inşa etmeye hazır mısınız?

Vizyonunuzu hayata geçirelim. Fark yaratan yazılımlar için ekibimiz hazır.

30 dakikalık keşif görüşmesi ayarlayınProjelerimiz

Kütüphaneden öne çıkanlar

Claude Skills

Tümünü gör
  • 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.

AI Otomasyonları

Tümünü gör
  • Güvenlik Denetçisi

    Önceliklendirilmiş düzeltme PR'larıyla haftalık SCA + IaC taraması.

  • Soğuk E-posta Yazarı

    Tek bir somut kamuya açık detaya dayalı ilk temas e-postaları üretir.

  • Lead Araştırma Agent'ı

    Bir e-postayı profile zenginleştirir, uygunluğu puanlar, Slack'te uyarır.

Kütüphaneden öne çıkanlar

Claude Skills

Tümünü gör
  • 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.

AI Otomasyonları

Tümünü gör
  • Güvenlik Denetçisi

    Önceliklendirilmiş düzeltme PR'larıyla haftalık SCA + IaC taraması.

  • Soğuk E-posta Yazarı

    Tek bir somut kamuya açık detaya dayalı ilk temas e-postaları üretir.

  • Lead Araştırma Agent'ı

    Bir e-postayı profile zenginleştirir, uygunluğu puanlar, Slack'te uyarır.

Hizmetler

  • Kurumsal Çözümler
  • Mobil Uygulamalar
  • Web Uygulamaları

Çözümler

  • CRM Sistemleri
  • Yapay Zeka Entegrasyonu
  • ERP Çözümleri
  • Sesli Asistanlar
  • Süreç Otomasyonu
  • Siber ve Veri Güvenliği

Kütüphane

  • Blog
  • Portfolyo

Topluluk

  • AI Otomasyonları
  • Claude Skills

Araçlar

  • Mobil Uygulama Maliyet Hesaplayıcı
  • OpenAI / LLM API Maliyet Hesaplayıcı
  • MVP Maliyet Hesaplayıcı
  • Sesli AI Ajan Maliyet Hesaplayıcı

Şirket

  • Hakkımızda
  • Partnerler
  • İletişim

Yasal

  • Gizlilik Politikası
  • Kullanım Şartları
  • Çerez Politikası

Hizmetler

  • Kurumsal Çözümler
  • Mobil Uygulamalar
  • Web Uygulamaları

Çözümler

  • CRM Sistemleri
  • Yapay Zeka Entegrasyonu
  • ERP Çözümleri
  • Sesli Asistanlar
  • Süreç Otomasyonu
  • Siber ve Veri Güvenliği

Kütüphane

  • Blog
  • Portfolyo

Topluluk

  • AI Otomasyonları
  • Claude Skills

Araçlar

  • Mobil Uygulama Maliyet Hesaplayıcı
  • OpenAI / LLM API Maliyet Hesaplayıcı
  • MVP Maliyet Hesaplayıcı
  • Sesli AI Ajan Maliyet Hesaplayıcı

Şirket

  • Hakkımızda
  • Partnerler
  • İletişim
YasalGizlilik PolitikasıKullanım ŞartlarıÇerez Politikası
TECHSY
© 2026 Techsy. Tüm hakları saklıdır.