orbi

Çalışma akışı

İşbirliği ve bildirimler

Yorum ve mention ile agent'ı yönlendirme, canlı sohbet, bildirimler ve giden webhook'lar.

Yorum ve mention

Agent'lar Jira'da bir ekip üyesi gibi yorum yazar ve @user ile insanları mention eder. Siz de threaded cevap verirsiniz.

Metin yazdığınız her yer aynı çalışır

Görev açıklaması, yorum, sohbet, agent talimatı, akış düğümünün notu, koleksiyonun amacı ve hafıza notu aynı yazma kutusudur ve iki şeyi garanti eder.

"@" her yerde çalışır. Bir agent'ı, koleksiyonu, görevi, dosyayı, kişiyi ya da aracı yazdığınız her metne bağlayabilirsiniz. @ yazdığınız anda öneri listesi açılır. Türü daraltmak isterseniz @task. gibi başlayın, liste kendiliğinden o türe iner. Öneriler tür sekmelerine ayrılmıştır, ↑ ↓ ile gezilir, Tab türü değiştirir ve Enter ekler.

Yazarken gördüğünüz, kaydettikten sonra göreceğinizdir. Başlık, madde listesi, kalın, eğik, alıntı ve kod yazarken anında biçimlenir, yani "önizle" düğmesine basmanız gerekmez ve kaydedince hiçbir şey değişmez. Biçimlendirmeyi bilmek zorunda da değilsiniz. Satır başına - yazmak listeyi, # yazmak başlığı, ** arasına almak kalını başlatır. İstemiyorsanız düz yazın, düz kalır.

Metin arka planda düz yazı olarak saklanır. Bu bir ayrıntı değildir, agent'ların okuduğu şeyin sizin yazdığınızla aynı olmasının sebebidir.

Yorumla agent çalıştırma

Bir yorumda @agent.<ad> yazarsanız o agent, task bağlamıyla sınırlı bir koşu yapar ve cevabını yorum olarak yazar. Bu, tam bir görev açmadan hızlı bir düzeltme veya ek soru istemenin yoludur.

@agent.blogger üçüncü bölümü daha kısa ve daha somut yeniden yaz.

Döngü koruması

Agent yorumları asla yeni bir koşu tetiklemez ve her yorum en fazla bir kez işlenir.

Bu olmasa iki agent birbirini mention ederek sonsuz bir sohbete girebilirdi ve her mesajı bir LLM çağrısı olan böyle bir sohbetin faturası hızla büyürdü. Kural basit tutuldu, tetikleme yalnızca insan yorumundan gelir.

Canlı sohbet

İki bağlamda sohbet edebilirsiniz.

  • Kart bağlamında sohbet, görevin bağlamını kullanarak agent'la konuşmanızı sağlar ve kartın verisini bilir. Bu sohbette oluşturulan yeni içerik kartın alanına gider.
  • Kendi sohbetiniz panodan ve alandan bağımsızdır, onu yalnız siz görürsünüz. Agent erişebildiğiniz bütün alanları okur. Yeni bir dosya, koleksiyon, takvim etkinliği ya da akış oluşturacağı zaman alanı sizin söylemeniz gerekir; söylemediyseniz hangi alana koyacağını size sorar (Alanlar). Bir sohbeti başkasına göstermek için onu karta dönüştürün.

Sohbet kelime kelime akar (streaming): agent yazarken metin ekrana gelir, bitmesi beklenmez. Agent bir araç kullanmadan önce ne yapacağını söylüyorsa o cümle adımın yanında görünür, cevap ise en son yazdığı metindir. Uygulamanın her yerinden ⌘K / Ctrl+K ile sohbet panelini açıp kapatabilirsiniz.

Yanıtı durdurmak, yeniden üretmek ve düzeltmek

  • Durdur. Agent çalışırken gönder düğmesi durdur düğmesine döner. Durdurduğunuzda o ana kadar gördüğünüz metin sohbette kalır ve altında yanıtın durdurulduğu yazar. Agent'ın durdurmadan önce yaptığı işler (açtığı kart, yazdığı kayıt) geri alınmaz ve adımlarda görünür. Sayfayı kapatmak ya da bağlantının kopması yanıtı durdurmaz; agent işini bitirir.
  • Yeniden üret. Son yanıtın altındaki düğme aynı mesajınızı yeniden yanıtlatır. Eski yanıt yenisiyle değişir, mesajınız ikinci kez yazılmaz.
  • Düzenle. Son mesajınızı düzenleyip yeniden gönderebilirsiniz; mesaj yerinde değişir ve ardındaki yanıt yeniden üretilir. Daha eski bir mesaj düzenlenemez, çünkü sohbet tek bir çizgidir. Onun metnini yeni bir mesaj olarak gönderirsiniz.

Gönderdiğiniz dosyalar mesajınızın altında görünür.

Cevap gelmeden ayrılırsanız agent çalışmaya devam eder. Yanıt bittiğinde size bildirim gelir ve sohbet listede okunmamış olarak işaretlenir (Bildirimler).

Sohbetlerinizi bulmak ve yeni bir sohbet başlatmak

Sohbet ekranında sol taraf sohbetlerinizin listesidir. Her satırda muhatap agent, sohbetin kapsamı, en son konuşulanın ilk satırı ve konuşmanın en son ne zaman hareket ettiği yazar. Liste zamana göre bugün, bu hafta ve daha eski diye ayrılır, en son konuştuğunuz sohbet en üstte durur. Arama kutusuna iki karakter yazdığınızda liste yerini sonuçlara bırakır ve mesajların içinde aranır; bir sonuca tıklamak sizi o mesajın geçtiği yere götürür.

Bir sohbet seçili değilken ekranın sağında agent listesi durur: bir agent'a tıkladığınızda sohbet hemen açılır.

Bir sohbetin adı ilk mesajınızdan türetilir ve çoğu zaman konuyu tam anlatmaz. Satırın üstüne geldiğinizde çıkan kalem düğmesiyle sohbeti yeniden adlandırabilirsiniz. Ad satırın kendi içinde düzenlenir, Enter kaydeder, Esc vazgeçer. Elle verdiğiniz ad bir daha kendiliğinden değişmez. Adı sohbetin sahibi ve workspace yöneticisi değiştirebilir; kanalın adı ise kanal ekranından yönetilir.

Sağdan açılan sohbet paneli aynı listeyi taşır. Panelin üstündeki liste düğmesi sohbetlerinizi konuşmanın üstüne getirir; bir sohbet seçtiğinizde konuşmaya geri dönersiniz. Panel başlığı hangi sohbette olduğunuzu, muhatap agent'ı ve kapsamı gösterir.

Sohbete dosya ekleyebilirsiniz ve eklediğiniz dosyalar agent'ın okuyabileceği şekilde bağlama girer. Ayrıntı: Dosyalar ve artifact'lar.

Sohbetin kendisi hafıza değildir, yani bir sohbette konuşulanlar sonraki göreve taşınmaz. Ama sohbette verdiğiniz kalıcı bir talimat hafıza notuna dönüşür ve sonraki koşuların başında agent'a hatırlatılır (Workspace hafızası). Kalıcı olması gereken bilgi ayrıca proje açıklamasına, agent tanımına veya bir koleksiyona da yazılabilir, ayrıntısı Hafıza ve bağlam sayfasındadır.

Orbi ile birlikte çalışma

Orbi'den bir şey istediğinizde hemen işe koyulmasını beklemeyin. Önce bakar, ne bulduğunu söyler ve gerekiyorsa size bir soru sorar. Bunun sebebi yavaşlık değil: bir kurulumun büyük kısmı zaten hazırken sıfırdan ikinci bir kopya açmak, ya da sizin göremediğiniz bir sonucu doğuran bir yolu sessizce seçmek, sonradan çok daha pahalıya mal olur.

Soru sorarken seçenek verir

Cevabı birkaç net şıktan biri olan bir soru geldiğinde Orbi size tıklanabilir seçenekler sunar. Her seçeneğin altında ne olacağı yazar, yani "ikincisi" demek zorunda kalmazsınız. Kendi cevabınızı yazmak isterseniz o da mümkündür.

Orbi yalnızca cevabı gerçekten sonucu değiştirecek şeyleri sorar; bakarak öğrenebileceği bir şeyi sormaz. Onay ise ayrı bir şeydir ve seçenek kartıyla gelmez: yeni bir tablo, akış, görev ya da belge oluşturmadan önce Orbi ne kuracağını tek cümleyle söyler ve sizin evetinizi bekler.

Hiçbir şey siz onaylamadan kurulmaz

Orbi bir tablo, akış, görev ya da belge oluşturmadan önce ne yapacağını size sunar. Bu bir nezaket değil, ürünün kuralıdır: onayınız gelene kadar Orbi'nin elinde oluşturma araçları yoktur, yalnızca bakabilir, sorabilir ve öneri sunabilir.

Onay, cevabının hemen altında beliren bir kartla gelir. Kartta kurulacak şeyin adı, içine ne gireceği ve ne yapacağı yazar. Kartta okuduğunuz şey birebir kurulur — siz onayladıktan sonra Orbi'nin fikrini değiştirmesi mümkün değildir, çünkü koşan şey kartta duran çağrının kendisidir. Beğenmezseniz basmanız gereken bir düğme yok: ne olmasını istediğinizi yazarsınız, yeni cevap gelirken eski kart kapanır.

Var olan bir tabloya kayıt yazmak, sütun eklemek ya da bir durumu değiştirmek onay istemez; yoksa her küçük istek iki tura çıkardı.

Sıra her zaman aynıdır:

  1. Bakar. Workspace'inizde ne olduğunu okur. İsteyeceğiniz şeyin yarısı çoğu zaman zaten kuruludur.
  2. Sorar. Yalnızca cevabı kurulumu değiştirecek olanları, tek seferde.
  3. Önerir. Yapacağı işi numaralı adımlar halinde sohbette gösterir.
  4. Siz onaylarsınız. Ya da neyi değiştirmek istediğinizi yazarsınız; Orbi öneriyi yeniler ve tekrar sunar.
  5. Adım adım kurar. Onay, yalnızca o anki adımın araçlarını açar.
  6. Devreder. Ne kurulduğunu, sizin ne yapmanız gerektiğini ve sırada ne olduğunu anlatır.

Tek bir tablo istemeniz de bu yoldan geçer. Öngörülebilir tek bir yol, hızlı ama her seferinde farklı davranan bir yoldan iyidir.

Ne değiştiğini her mesajın altında görürsünüz. Orbi bir şey kurduğunda, oluşturduğu ya da değiştirdiği her şey cevabının altında listelenir. Bu liste Orbi'nin ne yazdığından bağımsız olarak çıkar.

Neyi kendi yapar, neyi size bırakır

Ayrım tek cümledir: yeni bir şey doğuyorsa sizin evetinizi ister, var olanın içindeki iş için istemez.

Yeni bir tablo, akış, görev, belge ya da takvim kaydı — her biri workspace'inizin şeklini değiştirir ve konuşma bittikten sonra orada durmaya devam eder. Bunlar için Orbi onay kartı çıkarır.

Var olan bir şeyin içindeki işi ne yapacağını söyledikten sonra kendisi yapar: kayıt yazmak ve güncellemek, sütun eklemek, bir durumu değiştirmek, yorum bırakmak, görünüm kurmak.

Boyutundan bağımsız olarak her zaman sizde kalan üç iş var: bir akışı yayına almak, bir servis bağlamak ve dışarıya bir şey göndermek. Silme işlemini Orbi hiçbir zaman kendiliğinden yapmaz.

Bir kaydın, dosyanın ya da akışın üstünde konuşmak

Bir kaydın üzerine geldiğinizde satırın sağında "Orbi ile konuş" düğmesi belirir. Bastığınızda o kaydı konu alan sohbet, bulunduğunuz ekranı terk etmeden sağdan açılan panelde başlar; kaydın kendisi arkanızda durmaya devam eder. Panelin en üstünde hangi şeyin üstünde konuştuğunuz yazar ve oradaki bağlantıya tıklayarak kaydın kendisine gidebilirsiniz.

Bu sohbette o kayıt öznedir: yaptığınız değişiklikler ona uygulanır. Konuşma sırasında başka şeylerden söz ederseniz onlar kaynak ve referans olarak kalır, hedef olmaz. Aynı kayda ikinci kez "Orbi ile konuş" derseniz yeni bir sohbet açılmaz, önceki konuşmanın üstüne devam edersiniz.

Aynı düğme dosyalarda, akışlarda ve agent'larda da vardır; ayrıntılı sayfalarda üzerine gelmenizi beklemeden yerinde durur.

Sizin kelimelerinizi kullanır

Orbi sizin kullandığınız dili aynalar. Siz "koleksiyon" diyorsanız koleksiyon der, "verilerimi bir yere kaydetmek istiyorum" diyorsanız oradan devam eder. Kendi getirdiği bir terimi bir kez kısaca açıklar, sonra serbestçe kullanır. Size teknik seviyenizi ya da hangi araçları kullandığınızı sormaz; ne iş yaptığınızı sorabilir, çünkü o cevap kurulan şeyi değiştirir.

Realtime

Pano ve bildirimler canlıdır. Bir agent bir görevin durumunu değiştirdiğinde veya bir yorum yazdığında sayfayı yenilemeniz gerekmez, kart yerinde güncellenir. Ekipteki başka biri bir kartı taşıdığında da aynı şekilde görürsünüz.

Bildirimler

Zil, sol menünün üstünde workspace adının ve arama simgesinin yanındadır ve telefonda üst şeritte durur. Üzerindeki sayı yalnızca sizden bir şey bekleyen bildirimleri sayar. Size atanan görev, review'a hazır kart, hata veren görev ya da akış, sizden bahsedilmesi, katılma isteği ve ödeme sorunları bu sayıya girer. Bilgilendirmeler (bir kartın bitmesi, bir akışın başarıyla tamamlanması, bir yorum) listede görünür ama sayıya girmez. Bildirimler ayrıca e-posta ile gelir. Üçüncü bir kanal daha vardır, o da mobil'dir. Orbi mobil uygulaması henüz yayınlanmadığı için bu kanal şimdilik bir şey iletmiyor.

Listede her bildirim türünün kendi ikonu ve rengi vardır. Review'a hazır bir kart panodaki Review kolonuyla aynı moru, hata aynı kırmızıyı taşır ve renk seçilemeyen bir ekranda bile ikonun şekli türü söyler. Okunmamış olanlar sol kenarındaki vurgu çizgisiyle işaretlidir. Okunmuş bildirim solmaz, çünkü hala geçerli bilgidir, sadece yeni değildir.

Bildirimler geldikleri güne göre gruplanır. Bugün, Dün ve daha eski günler ayrı başlıklar altında durur ve her başlığın yanında o gün gelen bildirim sayısı yazar. Her satırın alt bilgisi neyin bildirildiğini söyler, yani varlık türü (Görev, Kanal, Akış, Plan), birden fazla workspace'te çalışıyorsanız hangi workspace'ten geldiği ve saat orada yazar. Tam tarih için üzerine gelin. Aynı görev, akış ya da kanaldan art arda gelen aynı türde bildirimler tek satırda toplanır. Satırın yanında kaç bildirimi kapsadığı yazar (×3) ve satıra tıklamak hepsini okundu sayar.

Okunmamış bildiriminiz varsa listenin üstünde Tümü / Okunmamış seçenekleri belirir ve ikincisi listeyi yalnızca henüz okumadıklarınıza indirir.

Uygulama açıkken yeni bir bildirim geldiğinde ekranın sağ alt köşesinde kısa bir kart belirir ve birkaç saniye sonra kendiliğinden kaybolur. Karta tıklamak sizi ilgili yere götürür. Zil paneli zaten açıksa kart çıkmaz, bildirim doğrudan listede belirir.

Bildirim üreten olaylar ve varsayılan kanalları şunlardır.

Olay Kimin haberi olur Varsayılan kanallar
Size görev atandı atanan kişi uygulama içi, e-posta, mobil
İlgilendiğiniz görevin durumu değişti görevin atananı ve açanı uygulama içi, e-posta, mobil
İlgilendiğiniz göreve yorum yapıldı görevin atananı ve açanı uygulama içi, e-posta, mobil
Bir yorumda sizden bahsedildi (@user.<ad>) anılan kişi uygulama içi, e-posta, mobil
Akış koşusu tamamlandı akışı kuran kişi uygulama içi (e-posta kapalı)
Plan / faturalandırma değişti workspace admin'leri uygulama içi, e-posta
Kanalda sizden bahsedildi ya da çağırdığınız agent cevap yazdı anılan / çağıran kişi uygulama içi, e-posta, mobil
Kanala her mesaj geldiğinde açan herkes hiçbiri (kapalı gelir)
Paylaşılan bir sayfadan biri workspace'e katılmak istedi workspace admin'leri uygulama içi, e-posta, mobil
Katılma isteğiniz onaylandı ya da reddedildi isteği gönderen kişi uygulama içi, e-posta, mobil
Siz ayrıldıktan sonra bir sohbet yanıtı bitti sohbette mesajı yazan kişi uygulama içi, mobil (e-posta kapalı)

Tablodaki mobil sütunu ileriye dönük bir hazırlıktır. Tercihiniz kaydedilir ama uygulama yayınlanana kadar telefonunuza bildirim düşmez. Bugün çalışan iki kanal vardır, uygulama içi bildirim ve e-posta.

Kendi yaptığınız değişiklik size bildirim göndermez. Bir kartı siz taşıdıysanız veya yorumu siz yazdıysanız posta kutunuzda karşılığını görmezsiniz, çünkü bildirim her zaman başkasının yaptığı bir şeyi haber verir.

Her durum değişimi e-posta üretmez. Bir görev Review, Tamamlandı veya Hata durumuna geçtiğinde bunu kim yaparsa yapsın (agent dahil) haber alırsınız. Diğer durum geçişleri (Yapılacak, Kuyrukta gibi) yalnızca başka bir kişi kartı taşıdığında bildirilir ve agent'ın kendi ilerleyişi sessizdir. Aksi halde tek bir görev koşusu posta kutunuza dört e-posta bırakırdı.

Zamanlanmış görevlerde e-posta neden kapalı geliyor? Dakikalık cron'lar gelen kutusunu boğar. Ancak başarısız koşular istisnadır. E-posta kanalını kendiniz kapatmadığınız sürece hatalar yine de e-posta ile bildirilir, çünkü sessizce duran bir akış fark edilmesi en zor arızadır.

Kanalda neden yalnız size seslenildiğinde haber alıyorsunuz? Kanal workspace geneline açıktır ve agent'lar oraya kendiliğinden yazabilir. Her mesaj herkesin zilini çalsaydı zil bir bütün olarak işe yaramaz hale gelirdi. Kanalı yakından takip etmek isterseniz "Kanala her mesaj geldiğinde" satırını açın. Açmasanız da okunmamış mesajı olan kanal sol menüde küçük bir noktayla işaretlenir. Uygulama açıkken ise kanalda değilseniz her yeni mesaj ekranın köşesinde canlı bir kart olarak belirir ve tıklayınca kanala götürür. Sekme arka plandayken de kaybolmaz (Kanallar).

Bildirimleri özelleştirme

Profil → Tercihler → Bildirim tercihleri bölümünden her olay için hangi kanaldan haber alacağınızı ayrı ayrı işaretleyebilirsiniz. Tercihler hesabınıza bağlıdır, yani üye olduğunuz tüm workspace'lerde aynı şekilde geçerlidir. "Varsayılanlara dön" ile her şeyi başlangıç ayarına alabilirsiniz.

Mobil sütununu şimdiden işaretleyebilirsiniz. Seçiminiz saklanır ve uygulama yayınlanıp telefonunuzda oturum açtığınız anda geçerli olur.

Panodaki Görevlerim ve Onay bekleyen odak filtreleri bildirimi tamamlar. Alanın menüsündeki pano rozetleri de hangi panoda sizi bekleyen iş olduğunu gösterir (Görevler ve Kanban).

Giden webhook

Orbi'deki olayları kendi sistemlerinize aktarabilirsiniz. Kartlar, koleksiyon kayıtları, dosyalar, koşular, üyelik ve kredi olmak üzere altı öbekte olay gönderilir; hangilerini istediğinizi bağlantıyı kurarken seçersiniz. Yalnız belirli panoların kartlarını ya da yalnız insanların yaptığı değişiklikleri almak gibi daraltmalar da yapılabilir.

Webhook'lar HMAC imzalıdır, yani uç noktanızda imzayı doğrulayarak isteğin gerçekten Orbi'den geldiğini kanıtlayabilirsiniz. Teslimat başarısız olursa yeniden denenir; başarısız kalan bir teslimatı teslimat günlüğünden elle gönderebilirsiniz.

Tipik kullanım şudur. Bir iş bittiğinde Slack kanalına mesaj düşürürsünüz, akış koşusu bitince kendi veri ambarınızı tetiklersiniz.

Olay listesi, gövde biçimi, imza doğrulama örneği ve teslimat günlüğü ayrı bir sayfada anlatılıyor: Giden bağlantılar.

Başka bir sistem Orbi'yi çağırınca

Giden webhook Orbi'nin dışarıya konuşmasıdır, bu ise onun tersidir. Dış bir sistemdeki olay akışı çalıştırır. Bir form dolduruldu, bir ödeme geldi ya da müşteri yönetim sisteminizde bir kayıt değişti diyelim, Orbi bunu haber alır ve akış başlar.

Bu, hiçbir şey sormadan beklemenin yerini alır. Olay geldiğinde çalışır, gelmediğinde hiçbir kaynak harcanmaz.

Nasıl kurulur

Akış tuvalinde soldaki listeden "Başka bir sistem çağırınca" kartını tuvale sürükleyin. Akışı kaydettiğinizde o tetiğe özel bir adres üretilir.

Adres yalnızca bir kez gösterilir. Bir parola gibi saklanır ve Orbi onu bir daha gösteremez. Kaydettikten hemen sonra kopyalayıp göndereceğiniz sisteme yapıştırın. Kaybederseniz sorun olmaz, aynı panelden yeni bir adres üretirsiniz ve eski adres o anda çalışmayı bırakır.

Bu tetiği yalnızca yöneticiler ekleyebilir. Dışarıya bir adres açmak, workspace'in tamamını ilgilendiren bir karardır.

Diğer tetiklerden hiçbir farkı yoktur. BAŞLA'ya bağlanır, üzerine koşul konabilir ve arkasında kaç agent varsa hepsi çalışır. Bir akışın hem sabah çalışan bir zamanlaması hem de dışarıdan çağrılan bir adresi olabilir.

Ne yapılacağını siz belirlersiniz, gönderdiğiniz içerik yalnızca veridir

Orbi, gönderdiğiniz içerikten görev başlığı okuyup kendiliğinden görev açmaz. Agent'ın ne yapacağını yalnızca sizin yazdığınız talimat belirler. Gönderdiğiniz içerik ise güvenlik gereği "dış sistemden gelen veri" olarak işaretlenir ve agent'a öyle sunulur, yani içinde "şunu yap" gibi cümleler geçse bile bunlar emir sayılmaz.

Böylece kontrol sizde kalır. Akış, dışarıdan ne gönderilirse gönderilsin her zaman sizin tanımladığınız işi yapar.

Aynı anda tek çalışma

Akış zaten çalışırken yeni bir istek gelirse, istek sıraya girer ve çalışma biter bitmez işlenir. Kaybolmaz. Bu, akışın kendi kuralıdır, çünkü aynı akışın iki çalışması aynı anda yürüseydi ikisi aynı kayda yazabilir ve verinizin doğruluğu bozulabilirdi.

Gönderen sistem beklemez, isteği aldığımızı hemen bildiririz.

Kimlik doğrulama

Kimlik, adresin kendisidir. Orbi onu bir parola gibi saklar, yani veritabanında duran şey adresin kendisi değil, ondan üretilmiş ve geri çevrilemeyen bir karşılıktır. Gelen bir istekte adres bu karşılıkla eşleştirilir. Bu yüzden adres size yalnızca üretildiği anda bir kez gösterilir ve Orbi sonradan onu bir daha veremez, kaybederseniz yenisini üretirsiniz.

En basit hali: yalnızca token

Doğrulama modu none ise tek yapmanız gereken URL'e POST atmaktır.

Bash
curl -X POST 'https://api.orbi.example/inbound/orbi_in_9f3c…' \
  -H 'Content-Type: application/json' \
  -d '{"email":"musteri@ornek.com","mesaj":"Fiyat listesi alabilir miyim?"}'
JSON
{ "ok": true, "eventId": "3f9a…", "status": "accepted" }

Zapier, Make, n8n ve form araçları için genellikle bu yeterlidir. URL'i yapıştırırsınız ve biter.

İmzalı hali: HMAC

Gönderen sisteminiz istek imzalayabiliyorsa tetiğin ayarlarından "İmza da istensin" seçeneğine geçin. Bu seçenek açıldığında Orbi size paylaşılan bir anahtar verir ve o da adres gibi yalnız bir kez görünür. İmza, giden webhook'la aynı şemadır, yani timestamp + nokta + payload'ın ham hali HMAC-SHA256 ile imzalanır.

Bash
URL='https://api.orbi.example/inbound/orbi_in_9f3c…'
SECRET='insec_…'                  # imza seçeneğini açtığınızda bir kez gösterilir
BODY='{"email":"musteri@ornek.com","mesaj":"Fiyat listesi alabilir miyim?"}'

TS=$(date +%s)
SIG=$(printf '%s' "$TS.$BODY" | openssl dgst -sha256 -hmac "$SECRET" -r | cut -d' ' -f1)

curl -X POST "$URL" \
  -H 'Content-Type: application/json' \
  -H "X-Orbi-Timestamp: $TS" \
  -H "X-Orbi-Signature: sha256=$SIG" \
  -d "$BODY"

Node.js:

JS
import { createHmac } from 'crypto';

const body = JSON.stringify({ email: 'musteri@ornek.com', mesaj: 'Fiyat listesi?' });
const ts = Math.floor(Date.now() / 1000).toString();
const sig = createHmac('sha256', SECRET).update(`${ts}.${body}`).digest('hex');

await fetch(URL, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-Orbi-Timestamp': ts,
    'X-Orbi-Signature': `sha256=${sig}`,
  },
  body, // <- imzaladığınız dizginin AYNISI gönderilmeli
});

Python:

Python
import hmac, hashlib, json, time, requests

body = json.dumps({"email": "musteri@ornek.com", "mesaj": "Fiyat listesi?"}).encode()
ts = str(int(time.time()))
sig = hmac.new(SECRET.encode(), ts.encode() + b"." + body, hashlib.sha256).hexdigest()

requests.post(URL, data=body, headers={
    "Content-Type": "application/json",
    "X-Orbi-Timestamp": ts,
    "X-Orbi-Signature": "sha256=" + sig,
})

İmzada takılınan iki nokta

1. İmzaladığınız byte'ları gönderin. İmza payload'ın ham hali üzerinden üretilir. Önce imzalayıp sonra JSON'ı yeniden serialize etmek (boşluk ekleme, key sırasının değişmesi) imzayı bozar. Yukarıdaki örneklerde body bir kez üretilip hem imzaya hem isteğe verilir, sebebi budur.

2. timestamp'i her istekte yeniden üretin. Beş dakikalık bir pencere vardır. Değer unix saniye beklenir, kolaylık olsun diye milisaniye (Date.now()) ve ISO-8601 de kabul edilir.

Pencere hatası alıyorsanız sebep neredeyse her zaman ikisinden biridir. Aynı imzayı birden fazla istekte yeniden kullanmışsınızdır, ya da gönderen sistemin saati kaymıştır. Hata mesajı gerçek farkı saniye cinsinden yazar (… 3601 saniye geçmişte), böylece hangisi olduğunu doğrudan görürsünüz.

URL'i yenilemek isterseniz Token yenile yeterlidir. Yeni URL anında geçerli olur ve olay geçmişiniz korunur.

Dosya göndermek

Olayın dosyası varsa (bir e-postanın CV'si, formun yüklediği belge) gövdenin üst düzeyindeki attachments alanına koyun. Her ek bir ad ve base64 içerik taşır:

JSON
{
  "konu": "Backend geliştirici başvurusu",
  "metin": "Merhaba, CV'm ekte.",
  "attachments": [
    { "filename": "cv.pdf", "contentBase64": "JVBERi0xLjQK..." }
  ]
}
  • Ekler agent'ın okuduğu veriye girmez. Orbi her eki akışın alanındaki Dosyalar'a kaydeder ve tetik verisinde yalnız dosyanın kimliği, adı, türü ve boyutu kalır. Agent dosyayı read_file ile okur, attach_file ile bir karta ekler.
  • Dosyalar ek olarak kaydedilir. İki gönderenin aynı adlı dosyası (iki ayrı cv.pdf) birbirinin sürümü olmaz.
  • İmza, ekler dahil ham gövdenin tamamı üzerinden hesaplanır. Yukarıdaki örnekler değişmeden çalışır.
  • Orbi'nin saklayamadığı bir dosya türü ya da dolu depolama kotası yalnız o eki düşürür. İstek yine kabul edilir ve tetik verisinde o ekin yerinde sebebi yazar (skipped). Böylece agent dosyanın gelmediğini söyleyebilir.
  • Bozuk bir ek (dizi değil, base64 değil ya da boş) isteğin tamamını 400 ile reddeder.

Günlük tavan

Her gelen olay bir agent koşusu, yani bir LLM çağrısı demektir ve bu maliyet sizin kendi API anahtarınıza yazılır. Günlük tavan, kullanımın öngörülebilir kalmasını sağlar, çünkü bir entegrasyon beklenenden çok olay gönderirse maliyet sessizce büyümez.

Tavan dolduğunda Orbi isteği yine kabul eder (202) ama koşu açmaz ve olay listesinde "kota doldu" olarak görünür. Böylece gönderen sistem hata almadığı için entegrasyon açık kalır, siz de tavanı gördüğünüz yerden yükseltebilirsiniz.

Olay logu

Her istek, kabul edilen de reddedilen de, tetiğin panelindeki "Gelen istekleri göster" altında listelenir.

Durum Anlamı
kabul Koşu açıldı
tekrar Aynı olay daha önce işlenmişti, agent ikinci kez çalışmadı
kota doldu Günlük tavan dolu, koşu açılmadı
reddedildi İmza, timestamp veya payload doğrulanamadı, sebebi satırın altında yazar

Kabul edilmeyen istekler de listelenir, yani bir entegrasyonu kurarken beklediğiniz sonucu alamazsanız sebebi doğrudan burada görürsünüz.

Halkayı kapatmak

Dışarıdan çağrılan adres ve giden webhook birlikte tam bir entegrasyon kurar. Dış sistem olayı iter, agent çalışır ve iş bitince schedule_job.completed olayı aynı sisteme geri gider. Payload'daki inboundTriggerId alanı, çalışmanın zamanlamadan mı yoksa sizin adresinizden mi geldiğini söyler.

Sınırlar

  • Payload, ekler hariç en fazla 64 KB olur ve büyüğü 413 alır.
  • Bir istekte en çok 10 ek gönderilir. Ek başına sınır 10 MB, toplam sınır 20 MBdır. Aşan istek 413 alır.
  • Adres başına dakikada 60 istek kabul edilir. Aşarsa 429 ve Retry-After döner, gönderen geri çekilip tekrar dener.
  • Endpoint hemen yanıt verir (202). Agent koşusu dakikalar sürebilir ve endpoint sonucu beklemez.
  • Gelen koşular workspace araçlarıyla çalışır. Kişisel MCP bağlantıları yalnızca kendi başlattığınız koşularda devreye girdiği için buraya dahil olmaz (Araçlar ve entegrasyonlar).
  • Tetikleyici oluşturma ve silme yalnızca Admin yetkisidir.

Orbi'yi dışarıya bağlamak: Orbi MCP sunucusu

Şimdiye kadarki bölümler dışarıyı Orbi'ye bağlıyordu. Bu bölüm tersini anlatır, yani kendi araçlarınızın Orbi'yi kullanmasını.

Orbi'nin bir MCP sunucusu vardır. Claude Code, Cursor ya da yazdığınız bir agent buna bağlandığında panonuzu okuyabilir, kart açabilir, durum değiştirebilir, yorum yazabilir ve ekibin paylaşılan hafızasına (koleksiyonlar ve dosyalar) erişebilir. Yani ekibinize uzaktan katılan bir geliştirici gibi çalışabilir.

Bu sonuncusu düşündüğünüzden önemlidir. Bir sohbet penceresinde çalışan agent'ın öğrendiği şey o pencerede kalır, koleksiyona yazdığı şey ise ekibin geri kalanının göreceği yerde kalır, yani sizin oturumunuz ile ekip arkadaşınızınki aynı belleği paylaşır.

Token üretme

Token'ı profilinizin Araç erişimi sekmesinde Token üret düğmesiyle üretirsiniz (sol menünün altındaki adınız → Araç erişimi). Aynı sekmedeki Erişim token'ları listesi, bütün workspace'lerinizde sizin adınıza ya da bir agent'ın adına çalışan token'ları workspace'e göre gruplu gösterir: elle ürettikleriniz, onay ekranından verdiğiniz bağlantılar ve ürettiğiniz agent token'ları. Admin olduğunuz workspace'lerde başkalarının ürettiği agent token'ları ayrı bir Diğer kullanıcıların görünümünde durur; satırda onu kimin ürettiği, eski token'larda bilinmiyor yazar. Benim token'larım yalnız sizin makinelerinizdekileri tutar. Her satırın solunda token'ın adı, sağında kimlik rozeti durur: agent'ın avatarı ve @agentadı ya da sizin avatarınız ve Benim adıma. Satırı açınca ayrıntıları ve İptal et düğmesini görürsünüz; listede gördüğünüz her token'ı iptal edebilirsiniz.

  • Size aittir, workspace'e değil. Admin bile başkasının kişisel token'ını göremez.
  • Geçerlilik 30, 90 ya da 365 gün ya da süresiz seçilir; varsayılan 90 gündür.
  • Rolünüzü devralır. Ayrı bir izin sistemi yoktur. Rolünüz viewer'a düşerse token da o an yazamaz hale gelir ve workspace'ten çıkarılırsanız token kapanır.
  • Bir kez gösterilir. Kaybederseniz geri getirilmez, yenisini üretirsiniz.
  • Salt-okunur işaretlenebilir ve bu, yalnızca panoyu izleyen istemciler için doğru seçimdir.
  • İptal edilebilir. İptal, bir sonraki çağrıda etkilidir ve oturum önbelleği yoktur.

İki tür token: sizin ve agent'ın

Kişisel token sizin adınıza çalışır. Yukarıdaki kurallar bunun içindir.

Agent token'ı bir agent'ın adına çalışır ve panoya yazdığı her şey o agent'ın imzasıyla görünür. Bir agent'ın token'ı olabilmesi için çalışma yerinin "Dışarıdan bağlanır" olması gerekir (Agent'lar). Farkları şunlardır.

Kişisel token Agent token'ı
Kime ait size agent'a (paylaşılan workspace kaynağı)
Kim yönetir yalnızca siz Admin üretir, workspace'in bütün agent token'larını görür ve iptal eder; üreten ya da yetkilendiren kişi Admin'liği düşse de kendininkini iptal edebilir
Panoda imza sizin adınız agent'ın adı
Rol sizin rolünüz (her istekte yeniden okunur) token üretilirken seçilir
Nereden üretilir Profil → Araç erişimi → Token üret aynı diyalog, Kimin adına alanında agent (yalnız Admin seçebilir)

Bir kodlama agent'ı bağlıyorsanız ikincisi doğru seçimdir, çünkü işi kimin yaptığı panoda görünür ve kendi bildirimleriniz çalışmaya devam eder (Kodlama agent'ı).

Bağlanma

claude mcp add --transport http orbi https://mcp.orbiwork.space/mcp

Komutta anahtar yoktur. /mcp yazıp Authenticate'i seçtiğinizde tarayıcıda Orbi'nin onay ekranı açılır; workspace'i ve kimliği (kendiniz ya da bir agent) orada seçersiniz. Adım adım anlatım Kodlama agent'ı sayfasındadır; Claude, Cursor, VS Code ve diğer istemcilerin adımları Profil → Araç erişimi sekmesindeki kurulum kartlarındadır. Tarayıcısı olmayan istemciler için gizli anahtar yolu durur: Streamable HTTP taşıması ve Authorization: Bearer <token> başlığı.

Kapalı alanlar. Kendi adınıza bağladığınız her araç Genel'i ve açık alanları görür; kapalı bir alanı ancak siz seçerseniz görür. Onay ekranıyla bağlanan araç da elle ürettiğiniz token da bu kurala uyar. Profil → Araç erişimi → Erişim token'ları listesinde token'ın satırını açıp Kapalı alanları seç ile üyesi olduğunuz kapalı alanları işaretlersiniz; elle ürettiğiniz token'da bu seçimi oluştururken de yapabilirsiniz. Daha önce ürettiğiniz token'lar da kapalı alanı siz seçene kadar görmez. Alandan çıkarsanız token'ın o alana erişimi hemen kapanır.

Birden çok workspace'i aynı istemciye bağlamak

Her bağlantı yalnız tek bir workspace'i görür; araçların workspace parametresi yoktur. İki workspace'i aynı istemciye (örneğin ChatGPT'ye) bağlıyorsanız iki ayrı bağlantı kurarsınız ve ikisinde de Genel bulunur. Ajanın bağlantıları karıştırmaması için:

  • Bağlantılara ayrı ad verin. Token üretirken ada workspace'i katın: ChatGPT · Acme. Ad alanının altındaki öneri düğmesi bunu tek tıkla yazar. İstemcideki bağlantı adını da aynı biçimde verin.
  • Orbi de bağlantıyı adlandırır. Her araç açıklaması [Orbi · <workspace>] etiketiyle başlar, sunucu adı ve bağlanınca gelen yönergenin ilk satırı workspace'i söyler. Ajan hangi bağlantının nereye yazdığını araç listesinden okur.
  • Hata mesajı yolu gösterir. Ajan bir alanı bulamazsa hata, aramanın yapıldığı workspace'i adıyla söyler. Aynı adlı alanı başka bir workspace'te okuyabiliyorsanız o workspace'i de söyler ve ajandan oranın bağlantısını kullanmasını ister. Yalnız üyesi olduğunuz workspace'ler ve görebildiğiniz alanlar adlandırılır.

Bağlandığı anda ne öğrenir

Bir istemci bağlandığında Orbi ona workspace'in tanıtımını gönderir ve çoğu istemci (Claude Code dahil) bunu kendi sistem yönergesine ekler. Yani ajan daha ilk mesajdan önce şunları bilir.

  • Hangi kullanıcı, hangi workspace, hangi rol ve yazma yetkisiyle bağlı olduğunu
  • Alanlarınızı ve her alanın panolarını (projectId'leriyle birlikte), alanın ve panonun amacını
  • Koleksiyonlarınızı, yani ad, amaç ve kayıt sayısıyla ekibin hafızasında ne olduğunu
  • Tanımlı Orbi agent'larınızı ve ne işe yaradıklarını
  • Ayarlar → Genel → Workspace Bağlamı'nda yazdığınız organizasyon metnini, yani Orbi'nin kendi agent'larına verilen metnin aynısını
  • Çalışma kurallarını, yani kart yaşam döngüsünü, yürütmeyi tetikleyen dört şeyi, kod işinde kart ile PR'ı bağlamayı ve yazmadan önce aramayı

Bu metin workspace'inizden üretilir, sabit bir yönerge değildir. Yeni bir koleksiyon açtığınızda ya da workspace bağlamını düzenlediğinizde bir sonraki bağlantı onu görür. Pratik sonucu şudur: "ajana her seferinde projeyi baştan anlatmak" ortadan kalkar.

Araçlar

Yeni içerik yazan araçlar (write_file, write_mind_model, create_collection, create_flow, create_project) hangi alana yazacaklarını space parametresiyle söyler ve bunun varsayılanı yoktur. Ajan alanı konuşmadan alır ya da size sorar; alanları whoami ve list_spaces listeler. Kart panosunu alır, alanı panodan gelir. save_memory'nin kapsamı bir alan ya da personal'dır. Bağlantı sizin kimliğinizle ve alan rollerinizle çalışır: izleyici olduğunuz alana yazamaz.

Pano

Araç Ne yapar
whoami Bağlantının hangi kullanıcı/workspace adına çalıştığı, yetkileri
list_spaces Alanlar, her alandaki rolünüzle
list_projects Panolar, alanlarıyla
list_tasks Kartlar. Filtresiz çağrılırsa size atanmış bitmemiş görevleri döndürür
get_task Kartın tamamı: açıklama, checklist, yorumlar, çıktılar, bağımlılıklar
search_workspace Kart/çıktı/yorum/dosya içinde arama
create_task Yeni kart; parentTaskRef ile bir özellik kartının alt kartı olarak açılır
set_task_state Durum değiştirme
update_task Kartın başlığını, açıklamasını, önceliğini, son tarihini ve etiketlerini yerinde düzenleme. Etiket için tags tüm listeyi değiştirir, addTags ekler, removeTags çıkarır
assign_task Kartın sahibini değiştirme (Orbi / agent / kişi)
move_task_to_project Kartı aynı alanın başka bir panosuna taşıma. Numara, durum ve geçmiş korunur. Alan değiştirmek arayüzde taşıma raporundan geçer
delete_task Kartı silme. Yalnızca bir kişi açıkça istediğinde çalışır, kart panodan kalkar ve etkinlik günlüğünde kimin sildiği kalır
add_task_comment Yorum
add_checklist_item Karta checklist item ekleme (order verilirse araya sokar, verilmezse sona ekler)
set_checklist_item_status Checklist item'ın durumunu değiştirme (pending / in_progress / done / error). Item get_task'taki 1-based sırasıyla verilir

Paylaşılan hafıza: koleksiyonlar (Koleksiyonlar)

Araç Ne yapar
list_collections Hangi koleksiyonlar var (ad, açıklama, kayıt/sütun sayısı)
read_collection Bir koleksiyonun şeması ve kayıtları. Sütun-değer filtresi verilebilir. fields ile yalnızca istenen sütunlar döner ve bir sayfaya çok daha fazla kayıt sığar; summary ile uzun metinler 200 karakterde kesilir ve kesilen sütunlar truncatedFields altında sayılır
read_record Tek kaydın tamamı (@collection.<ad>.<no>)
search_records Koleksiyon içinde anlamsal ve metin araması. fields ve summary burada da geçerlidir
create_collection Yeni koleksiyon (yeni bir hafıza deposu)
add_collection_field Var olan koleksiyona tek sütun ekler. relation tipinde relationTarget ile hedef koleksiyonun adı verilir, hedef aynı koleksiyon da olabilir. Sütun silmek arayüzde kalır
write_record Yeni kayıt. Koleksiyonun (ya da çağrının) dedup sütunu varsa semantik dedup uygulanır. Yanıt kısa bir makbuzdur (kayıt numarası, mention, yazılan sütunlar); kaydın tamamını returnRecord ile isteyebilirsiniz
update_record Var olan kaydı kısmen günceller. Yanıt yalnızca değişen sütunların adını ve mention'ı taşır, kaydın tamamı returnRecord ile döner

Paylaşılan hafıza: dosyalar (Dosyalar)

Araç Ne yapar
list_files Workspace/proje dosyaları, 50'şer sayfa; total gerçek toplamdır, nextOffset doluysa offset ile devam edilir. query ad içinde alt dize arar. readable alanı metnin okunabilir olup olmadığını söyler
read_file Dosyadan çıkarılmış metni sayfalı okur (12K karakter, offset ile devam)
write_file Metin dosyası yazar (md/txt/json/csv/html/xlsx/pdf/svg/xml/yaml). Aynı adla tekrar yazmak yeni versiyon üretir ve yanıttaki previousVersion bir önceki sürümün numarasını söyler. taskRef verilirse dosya o kartın Ekler bölümüne girer ve kartın projesine düşer
attach_file Var olan bir dosyayı var olan bir karta ekler. Kartı get_task ile okuyan herkes eki "Attachments" başlığında görür; aynı dosyayı iki kez eklemek hata değildir
delete_file Yalnızca bu kimliğin kendi yazdığı, yükleme olmayan ve hiçbir karta ya da kayda bağlı olmayan dosyayı sürüm geçmişiyle çöpe taşır. Dosya 30 gün boyunca arayüzden geri alınabilir. Yüklenen dosyalar ve başkasının dosyaları bu araçla silinemez

Zihin modeli (Zihin modeli)

Araç Ne yapar
read_mind_model Bir zihin modelini numaralı anahat olarak okur; node verilirse o düğüme odaklanır (kökten düğüme zincir tam, gerisi yalnız başlık)
write_mind_model Anahattan yeni bir zihin modeli kurar; aynı adla tekrar yazmak yeni versiyon üretir. Sonuç tuvalde açılan doğrulanmış bir ağaçtır, write_file ile yazılan bir metin değil
edit_mind_model Var olan ağacı değiştirir: düğüm ekle, güncelle, sil, taşı, iki düğümü bağla. Düğüme anahat numarasıyla ("1.2.2") erişilir. Birden çok değişiklik tek çağrıda gönderilebilir ve tek versiyon olur; çağrının özeti versiyon geçmişinde görünür. Bir düğüme eski metnini silmeden not eklenebilir, ağacın başlığı ve amacı da değiştirilebilir

Pull request bağı (Görevler)

Araç Ne yapar
link_pull_request Bir PR ya da merge request linkini karta bağlar; kartın "Pull request'ler" bölümünde durumuyla görünür. GitHub, GitLab (kendi sunucunuz dahil), Bitbucket, Gitea ve Azure DevOps linkleri tanınır. Aynı linkle tekrar çağırmak durumu günceller (ör. merged). Sağlayıcının doğruladığı bir bağa dokunmaz; elle yazılan bağ doğrulanana kadar "Doğrulanmadı" görünür
unlink_pull_request Yanlışlıkla yazılmış bir PR bağını karttan kaldırır; aynı PR başka kartlarda bağlı kalır

Kanallar (Kanallar)

Araç Ne yapar
read_channel Ad verilmezse okuyabildiğiniz kanalları alanı ve amacıyla listeler. Ad verilirse son mesajları eskiden yeniye, yazarı ve saatiyle döndürür; daha eski mesajlar için sonuçtaki before değeriyle tekrar çağrılır
post_to_channel Kanala adıyla mesaj yazar. Agent token'ı agent'ın adıyla yazar ve workspace politikaları metni denetler. Kişisel token sizin adınıza yazar ve mesajdaki @agent.<ad> o agent'ı cevap vermeye çağırır. @user.<ad> o kişiye bildirim gönderir. Orbi'de kişiye özel mesaj (DM) yoktur, bir kişiye seslenmek için onu kanalda ya da kart yorumunda anın

Kurulum: akışlar, agent'lar, projeler (Akışlar, Agent'lar)

Araç Ne yapar
list_flows Akışlar: tetikleri, duraklatma durumu ve tuval grafiğiyle
create_flow Yeni akış kurar — tetikler, tek görev tanımı ya da agent kartlı tuval. Akış duraklatılmış doğar; yayına almak size kalır
update_flow Var olan akışı değiştirir; yalnızca verilen alanlar değişir. isPaused:false akışı yayına alır
delete_flow Akışı koşu geçmişiyle birlikte siler. Yalnızca bir kişi açıkça istediğinde çalışır
create_agent Yeni agent tanımlar. Dışarıdan bağlanan agent'ın token'ını yine bir yönetici arayüzden üretir — bu yüzeyden token üretilmez
update_agent Var olan agent'ı günceller (prompt değişince versiyon artar; süren işler eski versiyonla biter)
create_project Verilen alanda yeni pano açar. Admin rolü ister ve alanın yöneticiliği de denetlenir

Yazma araçlarının tamamı (create_task'tan itibaren) salt-okunur token'da ve viewer rolünde kapalıdır. Paylaşılan bellek uzaktan silinmez, yani koleksiyon kaydı silmek ve başkasının dosyasını silmek yalnızca arayüzden yapılır. Paylaşılan belleği uzaktan silebilmek, kazandırdığından fazlasını riske atar. İki dar istisna vardır. delete_task yinelenen ya da yanlışlıkla açılan bir kartı kaldırır, kart kalıcı olarak yok olmaz ve etkinlik günlüğünde kimin sildiği görünür. delete_file ise yalnızca bağlanan kimliğin kendi yazdığı, yükleme olmayan ve hiçbir yere bağlı olmayan dosyayı çöpe taşır; dosya 30 gün arayüzden geri alınabilir.

list_tasks ve get_task kartın atananını da gösterir. list_tasks'ın assignee parametresiyle "şu kişiye ya da agent'a atanmış kartlar" sorgulanabilir.

Bu araçlar agent'ların kendi araçlarının aynısıdır. Yani Claude Code'un yazdığı kaydı Orbi agent'ı da aynı dedup ve şema kurallarıyla görür, çünkü "aynı hafıza" burada bir benzetme değil, birebir aynı kod yoludur.

Şaşırtabilecek dört davranış

set_task_state ile queued vermek agent yürütmesini TETİKLER. Kartı sadece "sırada" göstermek istiyorsanız todo kullanın.

add_task_comment metninde @agent.<ad> geçerse o agent çalışmaya başlar. Yorumda agent adını anmak, ona iş vermek demektir (Görevler).

assign_task kart zaten queued durumundayken AI'a (Orbi/agent) atarsa yürütme yeniden tetiklenir. Bu bilinçli bir davranıştır, çünkü kuyrukta bekleyen bir kartın sahibini değiştirmek "bunu artık şu çalıştırsın" demektir. Kişiye atamak tetiklemez, yani insana devretmek her zaman güvenlidir.

write_record her zaman yazmaz, sonucun written alanına bakın. Koleksiyonun bir dedup sütunu varsa (ya da çağrıda dedupField verilmişse) yeterince benzer bir kayıt bulunduğunda yazma reddedilir ve adaylar döner. Gerçekten yeni bir kayıtsa forceWrite ile tekrar deneyin, aynı kayıtsa update_record ile var olanı güncelleyin. Var olmayan bir kaydı "eklendi" diye raporlamak sonraki bütün işi yanlış yere oturtur. Dedup sütunu tanımlı değilse benzerlik kontrolü hiç çalışmaz, o yüzden tekrar yazmak istemiyorsanız önce search_records ile bakın.