Zapier Entegrasyonu

⚠️

Purvisor uygulaması Zapier’in herkese açık dizininde henüz yayında değil. Bu sayfadaki adımlar uygulamaya davetli erişimi olan hesaplar için geçerlidir; Zapier aramasında Purvisor’ı bulamıyorsan davet bağlantısı için bize yaz. Beklemeden başlamak istersen Zapier’in Webhooks by Zapier modülüyle aynı Public API’yi doğrudan çağırabilirsin.

Bir Google Form dolduruldu, bir Typeform tamamlandı, CRM’de yeni bir kayıt açıldı — ve saniyeler içinde Purvisor asistanın o kişiyi arıyor. Zapier, Purvisor’ı tek satır kod yazmadan kendi kataloğundaki uygulamalara bağlar. Perde arkasında Purvisor’ın Zapier uygulaması tamamen Public API üzerinde çalışır: Zapier her adımda https://app.purvisor.ai/api/v1 uçlarına senin API anahtarınla istek atar. Yani panelde tıkladığın her şey, burada Zapier’in dilinde tekrar eder.

Lead’i 5 dakikada aramak, 30 dakika sonra aramaya göre kat kat yüksek dönüşüm sağlar — Zapier bu gecikmeyi sıfıra yaklaştırır.

Nasıl çalışır?

Tetikleyici uygulama (form, CRM, reklam, e-tablo...)
        ↓ (Zapier "Trigger" tetiklenir)
Zapier → Purvisor uygulaması (Action)
        ↓ (X-API-Key ile POST /api/v1/...)
Purvisor kişi oluşturur / arama başlatır

AI asistanı arar → görüşme → analiz
        ↓ (Purvisor "Trigger" — REST hook)
Zapier'e imzalı olay POST'lanır → sonraki adım (Sheets, Slack, CRM...)

Zapier’de iki yön vardır:

  • Action’lar (Zapier → Purvisor): Başka bir uygulamadaki olay, Purvisor’da bir şey yaptırır — kişi oluştur, arama başlat.
  • Trigger’lar (Purvisor → Zapier): Purvisor’daki bir olay (arama bitti, sıcak lead) Zapier’i tetikler, sen de sonucu istediğin yere akıtırsın. Bunlar REST hook (webhook aboneliği) ile çalışır.

Ön koşullar

  • Bir Zapier hesabı (ücretsiz plan Action’lar için yeterli; çok adımlı Zap’ler ücretli plan ister).
  • Purvisor’da Pro veya üzeri bir plan — Public API bu planlarda açıktır; aksi halde her çağrı 403 premium_required döner.
  • Purvisor’da oluşturulmuş bir API anahtarı — Ayarlar sayfasından (API Anahtarı Yönetimi).
  • Arama başlatacaksan: aktif bir outbound asistan (İlk Asistanını Oluştur) ve bağlı bir telefon numarası (SIP) (Telefon Numarası (SIP)).
  • Dakika bakiyesi — Start Call, bakiye 1 dakikanın altındaysa arama açmaz (bkz. Sorun giderme).

Kurulum

API anahtarını al ve Purvisor uygulamasını bağla

Önce anahtarını üret: Purvisor panelinde Ayarlar → API Anahtarı → Anahtar Oluştur. Anahtar pk_live_ ile başlar ve ardından 48 karakter gelir (toplam 56 karakter). Bu tam anahtar yalnızca bir kez gösterilir — kopyala, güvenli bir yere kaydet.

⚠️

API anahtarın, hesabında kişi oluşturabilen ve ücretli arama başlatabilen bir sırdır. Zapier dışında kimseyle paylaşma. Sızdığından şüphelenirsen Ayarlar’dan Yeniden Oluştur de — eski anahtar o an geçersiz olur (hesap başına tek aktif anahtar). Detay: API Anahtarı Yönetimi.

Zapier’de yeni bir Zap açarken uygulama olarak Purvisor’ı seç. İlk kullanımda Zapier bir hesap bağlamanı ister: açılan alana kopyaladığın API anahtarını yapıştır. Zapier bu anahtarı her istekte X-API-Key başlığında gönderir.

📸 [Ekran görüntüsü: Zapier “Connect Purvisor” — API anahtarı yapıştırma alanı]

Bağlantıyı test et

Anahtarı yapıştırdıktan sonra Zapier bir bağlantı testi yapar. Bu test, arka planda GET /api/v1/me ucunu çağırır:

GET /api/v1/me HTTP/1.1
Host: app.purvisor.ai
X-API-Key: pk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Anahtar geçerliyse 200 döner ve hesabın kimliği gelir:

{ "id": "12345", "email": "sen@sirket.com", "name": "Adın" }

Anahtar yanlışsa 401 {"error":"invalid_api_key"} gelir — bu durumda Zapier “bağlantı başarısız” der; anahtarı tekrar kopyala. Referans: Kimlik Doğrulama, Hesap ve Lookup’lar.

Action seç: Create Contact veya Start Call

Zap’inin son adımında (Action) Purvisor’ın yapacağı işi seç:

ActionNe yapar
Create ContactPOST /api/v1/contactsKişi oluşturur. Telefonla dedupe eder: aynı numara zaten varsa yeni kayıt açmaz, mevcut kişiyi existing: true ile döner. Yeni kayıt 201, mevcut kayıt 200.
Find ContactGET /api/v1/contacts?phone=…Telefon veya metinle kişi arar; Zapier “search” adımı için dizi döner (boş dizi = bulunamadı).
Start CallPOST /api/v1/callsBir numaraya anında AI sesli araması başlatır. Kişi yoksa otomatik oluşturur.

Start Call action’ında Zapier sana iki açılır liste (dropdown) gösterir; bu listeler canlı olarak hesabından doldurulur:

  • Asistan listesi → GET /api/v1/assistants (yalnızca aktif asistanların; ismiyle seçersin, arka planda id gönderilir).
  • Telefon numarası (Caller ID) listesi → GET /api/v1/phone-numbers (yalnızca aktif numaraların). Boş bırakırsan ilk aktif numaran kullanılır.

Start Call gövdesine eşleyebileceğin alanlar:

AlanZorunluNot
phoneEvetEn az 10 hane. Tetikleyici uygulamadan gelen telefon alanını buraya eşle.
assistant_idEvetAsistan dropdown’undan gelir.
phone_number_idHayırCaller ID dropdown’u; boşsa ilk aktif numara.
first_name, last_nameHayırKişi yoksa oluştururken kullanılır.

Başarılı arama 201 döner:

{
  "call_id": "98765",
  "status": "initiated",
  "contact_id": "12345",
  "assistant_id": "asst_abc",
  "from_number": "+90850XXXXXXX",
  "to": "+905551112233"
}

Alan adları hem snake_case (phone_number_id) hem camelCase (phoneNumberId) kabul eder — Zapier’de hangisi gelirse çalışır. Tam referans: Arama Başlatma ve Kontaklar.

Trigger kur (REST hook ile Purvisor → Zapier)

Purvisor’daki bir olayı başlangıç noktası yapmak istersen, Zap’inin Trigger adımında Purvisor’ı seç ve bir olay seç (ör. Call Completed). Zap’i açtığın anda Zapier arka planda bir REST hook aboneliği oluşturur:

POST /api/v1/hooks HTTP/1.1
Host: app.purvisor.ai
X-API-Key: pk_live_...
Content-Type: application/json
 
{ "event": "call.completed", "targetUrl": "https://hooks.zapier.com/...", "source": "zapier" }

Yanıt, o abonelik için bir imza sırrı (32 karakterlik hex) içerir:

{ "id": "42", "event": "call.completed", "targetUrl": "https://hooks.zapier.com/...", "secret": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6" }

Bundan sonra ilgili olay her gerçekleştiğinde Purvisor, Zapier’in targetUrl’ine imzalı bir JSON gönderir. Zap’i kapattığında Zapier aboneliği DELETE /api/v1/hooks/{id} ile siler. Detay: Webhook’lar.

Uçtan uca örnek Zap: “Yeni form kaydı → hemen ara”

En sık kullanılan senaryo. Web sitesindeki formu bir AI aramaya bağlayalım:

1. Trigger  : Google Forms → "New Form Response"
2. Action   : Purvisor → "Start Call"
                phone         = {{Form: Telefon}}
                assistant_id  = "Satış Asistanı" (dropdown)
                phone_number_id = "+90850..." (dropdown, opsiyonel)
                first_name    = {{Form: Ad}}
→ Sonuç: Form gönderilir gönderilmez asistan arar. call_id döner.

İstersen araya bir Delay adımı koyarak “3 dakika bekle, sonra ara” diyebilirsin — kişinin formu tam gönderdiğinden emin olmak için. Sonucu takip etmek istersen ikinci bir Zap kur:

1. Trigger : Purvisor → "Call Completed"   (POST /api/v1/hooks ile abone olur)
2. Action  : Google Sheets → satır ekle
             {{outcome}}, {{sentiment}}, {{summary}}, {{durationSeconds}}

Böylece her aramanın sonucu otomatik bir e-tabloya düşer — CRM’e yazmak, Slack’e bildirim atmak da aynı mantıkla eklenir.

Trigger olayları (REST hook)

Purvisor 9 olayın tamamını canlı olarak tetikler. Her birinin alan yapısını GET /api/v1/samples?event=<olay> ile görebilirsin — dönen kayıt, canlıda geleceğin zarfının aynısıdır.

OlayDurumNe zaman
call.completed✅ YayındaArama analizi kaydedildiğinde (outcome, sentiment, summary, durationSeconds…).
contact.created✅ YayındaYeni kişi oluştuğunda (Zapier, web formu, panel…).
dnc.requested✅ YayındaBir kişi “aranmak istemiyorum” dediğinde.
lead.hot✅ AktifKişi o aramada “sıcak” eşiğine geçtiğinde (her sıcak aramada tekrar değil).
appointment.booked✅ AktifRandevu oluşturulduğunda (tarih, saat, randevu kodu ve linkiyle).
campaign.finished✅ AktifKampanya tamamlandığında — tam bir kez.
call.failed✅ AktifUlaşılamayan arama (cevapsız/meşgul/reddedildi). Müşteri gerçekten konuştuysa yayılmaz — o arama call.completed üretir.
appointment.cancelled✅ AktifRandevu iptal edildiğinde (yalnızca takvimde gerçekten iptal olduysa).
appointment.rescheduled✅ AktifRandevu ertelendiğinde — önceki tarih/saat de payload’da.

Purvisor’ın gönderdiği her olay X-Purvisor-Signature başlığıyla imzalanır (HMAC-SHA256, abonelik sırrınla). Zapier bu doğrulamayı senin için yönetir; kendi webhook’unu kurarsan imzayı mutlaka doğrula. Nasıl yapılacağı: İmza Doğrulama.

KVKK notu

Start Call, gerçek bir kişiyi telefonla arar — yani kişisel veri işler. Zapier’le otomatik arama kurarken:

  • Aradığın kişilerin açık rızasının olduğundan emin ol; rıza kapsamı otomatik aramayı da içermeli.
  • Asistanın açılışında kim olduğunu ve neden aradığını net söylesin.
  • dnc.requested trigger’ını bir Zap’e bağlayıp “aranmak istemeyenler” listeni CRM’inde otomatik güncel tut — hem uyum hem itibar için.

Sorun giderme

BelirtiOlası neden / çözüm
Zapier “bağlantı başarısız” diyorAPI anahtarı yanlış/eksik kopyalanmış → GET /api/v1/me 401 invalid_api_key döner. Ayarlar’dan anahtarı tekrar kopyala. Anahtar pk_live_ ile başlamalı.
Asistan/numara dropdown’u boşHesabında aktif asistan veya aktif telefon numarası yok. GET /assistants ve /phone-numbers yalnızca aktifleri döner.
Start Call çalışmıyor, “402”Yetersiz dakika bakiyesi — bakiye 1 dakikanın altında. Dakika paketi al (Dakika Paketleri).
Start Call “404”assistant_id veya phone_number_id bu hesaba ait değil / pasif. Dropdown’dan tekrar seç.
Start Call “409”Aynı kişiye devam eden bir arama zaten var — çift arama engellendi.
Trigger hiç tetiklenmiyorDokuz olay da canlıdır — olay henüz gerçekleşmemiş olabilir. lead.hot yalnızca kişi sıcak eşiğine geçtiğinde tetiklenir. Planın Pro ve üzeri mi (403 premium_required)?
Kişi iki kez oluşmuyor / güncelleniyorBeklenen davranış: Create Contact telefonla dedupe eder; mevcut numara existing: true ile döner.

Public API’de anahtar başına dakikada 60 istek sınırı vardır (429 + Retry-After). Diğer katı kapılar: Public API Pro ve üzeri plan gerektirir (403 premium_required) ve Start Call dakika bakiyesi ister. Hata kodlarının tam listesi: Limitler ve Hatalar.

İlgili