Ana içeriğe atla
Birçok liste için tek istekle birden fazla kayıt üzerinde işlem yapabilirsiniz: arşivleme, silme, aşama değiştirme, atama gibi. Seçimi iki yoldan verirsiniz: kayıt kimliklerini tek tek listelersiniz ya da select_all ile listenin tamamını seçersiniz. Bu sayfa iki yolu, işlem sayısını önceden öğrenmeyi ve sonucun nasıl raporlandığını anlatır.

Seçimi belirtmek

Gövde iki biçimden birini taşır. İkisini aynı istekte karıştırmayın. select_all ile kimlik alanını birlikte göndermek 422 döner. Gönderilmeyen kimlik alanı, select_all yoksa zorunludur. filters içindeki değerler, liste endpoint’inin kendi doğrulamasından geçer. Liste endpoint’inin reddedeceği bir filtre burada da reddedilir ve hata filters.<alan> anahtarıyla gelir. Kayıt değiştiren bir istekte liste filtresini filters dışında, gövdenin üst düzeyinde göndermek de 422 döner; aksi halde filtre sessizce yok sayılır ve seçim listenin tamamına genişlerdi. Sınırlar endpoint’e göre değişir:
  • Lead’lerde POST /v1/leads/bulk-stage ve POST /v1/leads/bulk-assign lead_ids için üst sınır koymaz. 200’den fazla Lead kuyruğa alınır. POST /v1/leads/bulk-delete ise 100 kimlik sınırını korur.
  • Faturaların toplu indirilmesinde en çok 200 fatura seçilir.
  • Hesap hareketlerinin toplu silinmesinde kimlik alanı transaction_ids’tir. Hesabın tüm hareketlerini silmek için all: true da gönderebilirsiniz; bu, filtreleri yok sayar ve select_all ile birlikte kullanılamaz.

Desteklenen kaynaklar

Sayım endpoint’leri :read scope’u, işlem endpoint’leri :write scope’u ister (örneğin conversations:read ve conversations:write). Faturaların toplu indirilmesi invoices:read ister. Hesap hareketleri uçları ek olarak bank_accounts:* ile account_transactions:* scope’larını birlikte arar. Kaynağın kendi kullanıcı izni de aranır; her endpoint’in izni ilgili kaynak sayfasındadır. Bu tabloda olmayan toplu silmeler (hasta ve Lead notları, kimlikler, hasta ve satış işlemleri, meslekler) yalnızca kimlik listesi alır. Bunların sonuç biçimi Yanıt yapısı sayfasındadır.

İşlem sayısını önceden öğrenmek

Onay ekranında “1.238 kayıt değişecek” gibi bir sayı göstermek için işlemden önce sayım endpoint’ini aynı seçimle çağırın. Gövde işlem endpoint’iyle aynıdır; işleme özgü alanları (hedef aşama, is_active gibi) göndermeniz gerekmez.
Sayı, seçimin şu an kapsadığı kayıt sayısıdır.

Kuyruğa alınan yanıt

select_all istekleri kayıtları isteğin içinde işlemez. Sunucu seçimi doğrular, kapsadığı kayıtları sayar ve işi arka plana bırakır:
Yanıtın HTTP durumu 200’dür. Kimlik listesiyle yapılan Lead aşama ve atama işlemlerinde yanıt biçimi farklıdır:
  • bulk-stage: 200 Lead’e kadar istek içinde taşınır ve {queued: false, moved_count} döner. Daha fazlası kuyruğa alınır ve {queued: true, lead_count} döner.
  • bulk-assign: 200 Lead’e kadar istek içinde atanır. Yanıt, belirli bir temsilcide assigned_count ve cap_exceeded_count, otomatik dağıtımda assigned_count ve skipped_count taşır. Daha fazlası {queued: true, lead_count} ile kuyruğa alınır.
Faturaların toplu indirilmesi kuyruğa alınan yanıtı kullanmaz. select_all ile gönderilen seçim, aynı faturaların ids ile gönderilmesi gibi indirilir: Excel hemen iner, PDF ve birleştirilmiş PDF 20 faturaya kadar hemen iner, daha fazlası 202 ile kuyruğa alınır ve imzalı bağlantı bildirimle gelir. Seçim 200 faturayı aşarsa 422 BULK_SELECTION_TOO_LARGE döner; data.max sınırı verir.

Sonuçların raporlanması

Kuyruğa alınan iş bitince isteği yapan kullanıcıya tek bir bildirim gelir. Bildirimi Bildirimler endpoint’leriyle okursunuz (GET /v1/notifications). Bildirimin type değeri kaynağa göre değişir: Bildirim verisi şunları taşır: Hata olursa da bildirim gelir. Çalışma yarıda kesilirse (zaman aşımı, beklenmeyen hata) değişen sayısı 0 ve atlananlar SERVER_ERROR altında bildirilir; o ana kadar bazı kayıtlar değişmiş olabilir. İş yeniden denenmez, çünkü yeniden deneme zaten değişen kayıtları tekrar işlerdi. Bildirimdeki sayılar kesin değilse listeyi yeniden okuyup durumu kontrol edin. Kuyruğa alınan işlerde şu kurallar geçerlidir:
  • Yalnızca isteği onayladığınız anda var olan kayıtlar etkilenir. O andan sonra oluşan kayıtlar filtreye uysa bile işlenmez.
  • Her kayıt işlenirken yeniden denetlenir. Artık listeyle eşleşmeyen kayıt BULK_ROW_NO_LONGER_SELECTED nedeniyle atlanır.
  • İş sırasında kullanıcının işlem izni kalktıysa ya da klinikten çıkarıldıysa kayıtlar FORBIDDEN ile atlanır.
  • Bir kayıt başkalarını durdurmaz. İmha edilmiş hastanın kaydı (CUSTOMER_ERASED) ya da başka temsilciye atanmış Lead (LEAD_NOT_ASSIGNED) gibi reddedilen kayıt tek başına atlanır.
  • Etkinlik günlüğü kayıtlarında işlemi yapan olarak isteği gönderen kullanıcı görünür.
Kimlik listesiyle yapılan isteklerde sonuç yanıtın içindedir: data.success_count, data.failed_count ve kayıt başına data.results[]. Biçim ve kayıt kimliği anahtarları için Yanıt yapısı sayfasına bakın. Hesap hareketlerinin kimlik listesiyle toplu silinmesi istisnadır: hepsi ya da hiçbiri çalışır ve {deleted_count} döner.

Hatalar

Tüm hata kodları için Hata kodları sayfasına bakın.

Örnek

Açık destek taleplerinin tamamını, iki talep hariç silin. Önce sayıyı öğrenin, sonra işlemi başlatın.
Sayım ile işlem arasında liste değişebilir. İşlem yanıtındaki count, sayımdan farklı çıkarsa kullanıcıya gerçek sayıyı gösterin.