İçeriğe geç

Ayarlar

Profilinizi, entegrasyonlarınızı ve aboneliğinizi yönetin.

Nerede: sol menü → Ayarlar.

Ayarlar → Hesap altında Ad Soyad bilginizi düzenleyebilir ve güvenli bir E-postayı değiştir akışı başlatabilirsiniz (e-posta değişiklikleri doğrulama gerektirir). Değişiklikleri kaydet’e tıklayın.

Ayarlar → Entegrasyonlar altında.

Asistanların randevu alabilmesi için Google Takvim’i bağlayın.

  1. Google Takvim’i Bağla’ya tıklayın ve erişime izin verin (platform yalnızca Takvim kapsamını kullanır; Google’ın Sınırlı Kullanım politikasına tabidir).
  2. Bağlantı kurulduktan sonra şunları ayarlayın:
    • Randevuları Otomatik Onayla.
    • Hatırlatma Gönder + ne kadar önce gönderileceği (15 dakika – 1 gün).
    • İşletme Saat Dilimi — bir geri dönüş değeridir; asıl çalışma saatleri her kaynağın kendi ayarında tutulur.
  3. Değişiklikleri Kaydet. Bağlantıyı kaldırmak için Bağlantıyı Kes’i kullanın (mevcut randevular etkilenmez).

Slack’e bildirim gönderin. Her biri bir webhook adresi ve seçilmiş olaylar içeren bir ya da daha fazla entegrasyon ekleyin (yalnızca yöneticiler): Arama Tamamlandı, Arama Başarısız, Randevu Alındı, Kampanya Tamamlandı, Kullanım Uyarıları ve Günlük Özet (gönderim saatiyle birlikte). Örnek bir mesaj göndermek için Test’i kullanın.

Ayarlar → Faturalandırma altında (doğrudan faturalandırılan hesaplarda görünür). Plan özeti için Faturalandırma ve Planlar sayfasına bakın. Bu sayfadan şunları yapabilirsiniz:

  • Kullanımı görüntüleyin — planınıza karşılık kullanılan asistan ve dakika sayısı ile mevcut dönem bitişi.
  • Faturalamayı Yönet — ödeme yönteminizi ya da faturalarınızı güncellemek için Stripe müşteri portalını açar.
  • Dakika Paketi Satın Al — ön ödemeli dakika satın alın (bu dakikaların süresi dolmaz); ödeme onaylandığında bakiye güncellenir.
  • Otomatik Yükleme — bakiyeniz belirlediğiniz eşiğin altına düştüğünde otomatik olarak paket satın alır. Paketi, eşiği (dakika) ve aylık satın alma sınırını belirleyin. Bir çekim 3‑D Secure gerektirirse duraklar; art arda başarısız denemelerden sonra kendini devre dışı bırakır.
  • Plan değiştirin — plan tablosundan planınızı yükseltin ya da düşürün. Yükseltme ve düşürmelerde onaydan önce tahmini bir orantılı ücretlendirme gösterilir; düşürmeler dönem sonuna planlanır (ve iptal edilebilir).

Ayarlar → Webhook İzin Listesi altında (yalnızca yönetici/sahip). Özel araçlarınızın ve MCP sunucularınızın hangi host’lara çağrı yapabileceğini sınırlayın: her satıra bir host adı girin (şema ya da yol olmadan; alt alan adları sonek olarak eşleşir). Boş liste tüm URL’lere izin verir. Özel/yerel adresler reddedilir. Allowlist’i kaydet’e tıklayın.

Ayarlar → Webhook’lar altında (planınızda etkinse). Webhook hesap düzeyinde bir nesnedir: alıcı endpoint’i bir kez tanımlar, istediğiniz sayıda asistana bağlarsınız; platform seçtiğiniz çağrı olaylarında bu adrese bir JSON yükü POST eder. Listeyi ve teslimat geçmişini herkes görebilir; oluşturma, düzenleme, silme, test, yeniden gönderme ve anahtar işlemleri yalnızca yönetici/sahip içindir. Hesap başına en fazla 25 webhook.

Yeni webhook’a tıklayın ve şunları doldurun:

  • Ad — hesabınız içinde benzersiz olmalıdır.
  • Uç nokta URL’si — yalnızca HTTPS. Özel/yerel adresler reddedilir; bir webhook izin listesi tanımlıysa host bu listede olmalıdır.
  • Kimlik DoğrulamaKimlik doğrulama türü varsayılan olarak HMAC imzası’dır (bkz. Webhook imzasını doğrulama); diğer seçenekler Yok, Bearer token, API anahtarı, Basic kimlik doğrulama, OAuth2 istemci kimlik bilgileri ve JWT bearer. Hem ağ geçidi token’ı hem imza mı gerekiyor? HMAC’te kalın ve Başlıklar bölümüne bir Authorization başlığı ekleyin.
  • Başlıklar — her teslimatla birlikte gönderilir; sır ekleme menüsünden bir sırra {{secrets.KEY}} olarak referans verin (değerler şifrelenir ve bir daha gösterilmez).
  • Zaman aşımı (saniye) (1–120, varsayılan 15) ve Yeniden denemelerEn fazla yeniden deneme (0–4) ve Şu durumlarda yeniden dene: zaman aşımı/bağlantı hatası, sunucu hatası (5xx), 429 ve 408. Bkz. Teslimat yeniden denemeleri.
  • Olaylar — Arama tamamlandı (varsayılan olarak açık), Arama başladı, Arama başarısız oldu, Arama aktarıldı, Randevu alındı. Her olay ayrı bir teslimattır.
  • Yüke dahil et — Özet ve analiz, Tam transkript, Biçimlendirilmiş transkript, Çıkarılan değişkenler, Giriş değişkenleri, Kampanya/kişi bilgisi, Transferler, Arama meta verileri, Kayıt URL’si. Kapalı bölümler yükten çıkarılır.
  • Yalnızca yanıtlanan aramalar — yanıtlanmadan biten çağrılarda Arama tamamlandı olayını atlar.
  • Etkin — kapalı bir webhook asistanlarına bağlı kalır ama hiçbir şey almaz.

HMAC kimlik doğrulamalı bir webhook’u kaydettiğinizde imza anahtarı (whsec_…) yalnızca bir kez gösterilir — hemen alıcınıza kopyalayın.

Bir asistan açın → Ayarlar sekmesi → Webhook’lar kartından o asistanın çağrılarında tetiklenecek webhook’ları işaretleyin (asistan başına en fazla 5; kartta Webhook’ları yönet ve Yeni webhook oluştur bağlantıları da bulunur). Bir webhook birden çok asistana hizmet edebilir — her yük agent_id taşır.

Hâlâ eski, asistan üstü yapılandırmayı kullanan bir asistanda kart Bu temsilci eski tip webhook kullanıyor; taşıma bekleniyor. uyarısını ve salt okunur bir özeti gösterir: taşıma tamamlanana kadar teslimatlar o ayarlarla sürer; karttan bir webhook seçtiğinizde ise yalnızca seçtikleriniz kullanılır.

  • Test gönder, kayıtlı yapılandırmayı kullanarak örnek bir Arama tamamlandı yükü gönderir (kaydedilmemiş değişiklikler dahil edilmez); HMAC’te test imzalanır, bu yüzden önce webhook’u kaydedin.
  • Teslimat geçmişi sekmesi webhook’un tüm teslimatlarını listeler — olay, durum (beklemede / iletildi / başarısız), HTTP yanıtı, her deneme ve saklanan yük; olaya, duruma ve asistana göre filtrelenir, 30 gün saklanır. Yöneticiler bir teslimat için Yeniden gönder’e tıklayabilir: aynı olay yeni bir teslimat olarak kuyruğa alınır (kırpılmış yük çağrıdan yeniden kurulur). Asistanın kendi Webhook geçmişi sekmesi aynı satırları tüm webhook’ları için gösterir.

İlk deneme hemen yapılır. Deneme yeniden denenebilir bir sonuçla başarısız olursa — zaman aşımı/bağlantı hatası, 5xx yanıtı, 429 ya da 408 — teslimat En fazla yeniden deneme kadar (en çok 4) yeniden denenir; yeniden denemeler bir önceki denemeden 30 sn, 2 dk, 8 dk ve 30 dk sonra yapılır ve her aralığa %10’a kadar rastgele sapma (jitter) eklenir. Diğer tüm 4xx yanıtları kesindir: yeniden deneme yapılmaz. Her deneme Teslimat geçmişi’nde aynı satıra yazılır; bir yeniden deneme planlandığı sürece satır beklemede kalır ve Sonraki deneme ile bir sonraki denemenin saatini gösterir. Hâlâ eski, asistan üstü webhook’u kullanan asistanlar taşınana kadar eski yeniden deneme davranışını korur.

Arka arkaya 10 başarısız teslimattan sonra webhook hiç başarılı teslimat yapmamışsa ya da son başarılı teslimatı 7 günden eskiyse platform webhook’u devre dışı bırakır:

  • liste ve webhook’un sayfası Otomatik devre dışı rozetini ve nedenini gösterir;
  • yönetici ve sahip kullanıcılara e-posta gönderilir (webhook adı, endpoint host’u, hata sayısı, son başarılı teslimat);
  • yeni olaylar artık bu webhook’a iletilmez; devre dışı kaldığı sürece Yeniden gönder hata döndürür.

Kurtarmak için alıcı endpoint’i düzeltin, webhook’ta Yeniden etkinleştir’e tıklayın (hata sayacı da sıfırlanır), sonra başarısız teslimatları Teslimat geçmişi’nden yeniden gönderin.

Yöneticiler anahtarı webhook’un İmza anahtarı kartından Göster ile görüntüleyebilir (her görüntüleme denetim kaydına yazılır), Kopyala ile kopyalayabilir ve Yeni anahtar üret ile yenileyebilir. Yenileme anında geçerlidir: onayladığınız an eski anahtar çalışmayı bırakır ve alıcı yeni anahtara geçene kadar teslimatlar başarısız olur — önce alıcıyı güncelleyin, sonra başarısız teslimatları geçmişten yeniden gönderin.

HMAC’li bir webhook’tan gelen her istek — her deneme, yeniden deneme, yeniden gönderim ve Test — şu başlığı taşır:

X-Webhook-Signature-256: t=<unix saniye>,v1=<hex>

Burada v1 = HMAC-SHA256(anahtar, "<t>." + ham gövde). Gövde sıkıştırılmış (boşluksuz) JSON olarak byte’larıyla gönderilir; bu yüzden HMAC’i ham istek gövdesi üzerinden hesaplayın — ayrıştırılıp yeniden serileştirilmiş bir gövde eşleşmez (Express: express.raw({ type: "application/json" }), Flask: request.get_data()). Alıcınız şunları yapmalıdır:

  1. Başlıktan t ve v1 değerlerini ayrıştırın.
  2. "<t>." + gövde üzerinden HMAC’i yeniden hesaplayın ve v1 ile sabit zamanlı karşılaştırın.
  3. t 5 dakikadan eskiyse isteği reddedin — her deneme taze bir zaman damgasıyla imzalanır; eski damga tekrar (replay) demektir.
  4. Yükteki delivery_id ile tekrarları eleyin — yeniden denemeler ve yeniden gönderimler aynı olayı birden fazla kez iletebilir.

Python

import hashlib, hmac, re, time
SIGNATURE = re.compile(r"^t=(\d+),v1=([0-9a-f]{64})$")
def verify(secret: str, header: str, body: bytes, tolerance: int = 300) -> bool:
m = SIGNATURE.match(header or "")
if not m:
return False
t, v1 = m.group(1), m.group(2)
if abs(time.time() - int(t)) > tolerance: # 5 dakikalık tekrar penceresi
return False
expected = hmac.new(secret.encode(), f"{t}.".encode() + body, hashlib.sha256).hexdigest()
return hmac.compare_digest(expected, v1)

Node

const crypto = require("node:crypto");
function verify(secret, header, rawBody, tolerance = 300) {
const m = /^t=(\d+),v1=([0-9a-f]{64})$/.exec(header || "");
if (!m) return false;
const [, t, v1] = m;
if (Math.abs(Date.now() / 1000 - Number(t)) > tolerance) return false; // 5 dakikalık tekrar penceresi
const expected = crypto.createHmac("sha256", secret).update(`${t}.`).update(rawBody).digest("hex");
return crypto.timingSafeEqual(Buffer.from(expected, "hex"), Buffer.from(v1, "hex"));
}

Üyeler üç rolden birine sahiptir — Kullanıcı, Yönetici ya da Sahip — ve bu roller entegrasyonları, webhook’ları ve webhook izin listesini kimin düzenleyebileceğini, şablonları kimin kullanabileceğini belirler. Yeni üyeler e-postayla gönderilen bir davet bağlantısı üzerinden katılır.