Hukuk büroları, müşteri verilerinden dosyalara kadar pek çok kritik bilgiyi farklı platformlarda yönetir. North City Law adlı bir ABD firmasının yaşadığı sorun, bu platformlar arasındaki senkronizasyon eksikliğiydi. Clio ve Lawmatics müşteri yönetimini, Zoom çağrı kayıtlarını, Box ise belge depolamasını sağlıyordu. Personel, her yeni müşteri için veriyi dört farklı sisteme manuel olarak giriyor ve günlük 2-3 saatini rutin veri kopyalama işlerine harcıyordu. Bu karmaşık süreci otomatikleştirmek için geliştirdiğimiz çözüm, ASP.NET Core ve Hangfire altyapısını kullanarak tüm platformları birbirine bağladı.
Hukuk Bürolarında Veri Senkronizasyonunun Önemi
Hukuk sektöründeki firmalar, müşteri ilişkilerinden dava dosyalarına kadar geniş bir veri yelpazesini yönetmek zorundadır. Ancak bu veriler genellikle birbirinden bağımsız sistemlerde bulunur ve manuel senkronizasyon gerektirir. North City Law örneğinde, süreç şu şekilde işliyordu:
- Yeni bir müşteri Lawmatics CRM sistemine ekleniyor ve personel aynı bilgileri Zoom’un harici temas listesine de manuel olarak giriyordu.
- Zoom üzerinden gerçekleştirilen çağrılar kayıt altına alınıyor, AI özeti ve metni oluşturuluyordu.
- Personel, bu kayıtları indirip Clio’daki ilgili not alanına kopyalıyordu.
- Yeni bir dava dosyası açıldığında, Clio’da manuel olarak bir Box klasörü oluşturuluyor ve belgeler yükleniyordu.
Bu süreç, hem zaman kaybına hem de veri tutarsızlıklarına yol açıyordu. Oysa tüm bu adımların otomatikleştirilmesi, hem verimliliği artırıyor hem de insan hatalarını en aza indiriyor.
Teknik Altyapı: ASP.NET Core ve Hangfire ile Otomasyon
Otomatik senkronizasyon sistemimiz, Blazor Server + ASP.NET Core + Hangfire bileşenlerinden oluşuyor. Tüm sistem, Azure App Service üzerinde barındırılıyor ve OAuth 2.0 token’ları şifrelenmiş olarak SQL Server’da saklanıyor. Bu mimari, dört ana görevi otomatikleştiriyor:
- 6 saatte bir: Clio/Lawmatics’ten Zoom harici temaslarına müşteri senkronizasyonu
- Her sabah 07:00 UTC: Zoom çağrı kayıtları, AI özetleri ve metinlerinin Clio/Lawmatics’e aktarımı
- Her 15 dakikada bir: Clio’daki yeni dava dosyalarına karşılık Box klasörü oluşturma
- Her sabah 06:00 UTC: Clio’daki dava belgelerinin Box klasörlerine yüklenmesi
Aşağıdaki kod parçası, Hangfire’ın SQL Server ile nasıl yapılandırıldığını gösteriyor:
builder.Services.AddHangfire(config => config
.SetDataCompatibilityLevel(CompatibilityLevel.Version_180)
.UseSimpleAssemblyNameTypeSerializer()
.UseRecommendedSerializerSettings()
.UseSqlServerStorage(builder.Configuration.GetConnectionString("HangfireDb"), new SqlServerStorageOptions
{
CommandBatchMaxTimeout = TimeSpan.FromMinutes(5),
SlidingInvisibilityTimeout = TimeSpan.FromMinutes(5),
QueuePollInterval = TimeSpan.Zero,
UseRecommendedIsolationLevel = true,
DisableGlobalLocks = true
}));
builder.Services.AddHangfireServer(options =>
{
options.WorkerCount = 5;
options.Queues = new[] { "critical", "default", "low" };
});Bu yapılandırma, işlerin zamanlanmasını, yeniden denemeleri ve hata durumlarını yöneten bir altyapı sunuyor.
Müşteri Verilerinin Zoom’a Senkronizasyonu
İlk adım, Clio ve Lawmatics’ten alınan müşteri verilerini Zoom’un harici temas listesine senkronize etmek. Bu işlem, her 6 saatte bir gerçekleşiyor. Anahtar nokta, telefon numarasına göre eşleştirme yapmak, çünkü farklı sistemlerde isimler farklı şekilde kaydedilebiliyor. İşlem akışı şöyle:
- Clio’dan tüm müşteriler çekiliyor (sayfalama destekleniyor).
- Zoom’daki mevcut harici temaslar alınıyor ve telefon numarasına göre bir sözlük oluşturuluyor.
- Her Clio müşterisi için:
- Telefon numarası normalleştiriliyor.
- Zoom’da karşılığı varsa, ismi değişmişse güncelleniyor.
- Yoksa yeni bir temas oluşturuluyor.
public async Task ExecuteAsync()
{
_logger.LogInformation("Başlangıç saat: {Time}", DateTime.UtcNow);
var clioContacts = await _clio.GetAllContactsAsync();
var zoomContacts = await _zoom.GetExternalContactsAsync();
var zoomByPhone = zoomContacts
.Where(z => !string.IsNullOrEmpty(z.Phone))
.ToDictionary(z => z.Phone!.NormalizePhone(), z => z);
int created = 0, updated = 0, skipped = 0;
foreach (var contact in clioContacts)
{
try
{
var normalized = contact.PrimaryPhone?.NormalizePhone();
if (string.IsNullOrEmpty(normalized))
{
skipped++;
continue;
}
if (zoomByPhone.TryGetValue(normalized, out var existing))
{
if (existing.DisplayName != contact.DisplayName)
{
await _zoom.UpdateExternalContactAsync(existing.Id, new ZoomContactRequest
{
DisplayName = contact.DisplayName,
Email = contact.Email,
Phone = contact.PrimaryPhone
});
updated++;
}
}
else
{
await _zoom.CreateExternalContactAsync(new ZoomContactRequest
{
DisplayName = contact.DisplayName,
Email = contact.Email,
Phone = contact.PrimaryPhone
});
created++;
}
}
catch (Exception ex)
{
_logger.LogError(ex, "Müşteri senkronizasyonu başarısız: {Name}", contact.DisplayName);
}
}
_logger.LogInformation("İşlem tamamlandı. Oluşturulan: {C}, Güncellenen: {U}, Atlanan: {S}", created, updated, skipped);
}Bu işlem, hem verilerin doğruluğunu sağlıyor hem de personelin manuel veri girişinden kurtarıyor.
Zoom Çağrı Kayıtlarının Clio’ya Aktarımı
En değerli otomasyon adımı, Zoom’dan gelen çağrı kayıtlarının, AI özetlerinin ve metinlerinin otomatik olarak Clio’ya aktarılması. Bu sayede, personel hem çağrı detaylarına hızlıca ulaşabiliyor hem de önemli bilgileri dosyalayabiliyor. Süreç şöyle işliyor:
- Zoom API’si üzerinden çağrı kayıtları, AI özeti ve metin indiriliyor.
- Clio’daki ilgili müşteri veya dava dosyasına yapılandırılmış bir not olarak ekleniyor.
- Belgeler, Box klasörlerine otomatik olarak yükleniyor ve klasör yapısı Clio’daki dava dosyasına göre oluşturuluyor.
Bu otomasyon sayesinde, çağrı sonrası not alma süreci saniyeler içinde tamamlanıyor ve veri kaybı riski ortadan kalkıyor.
Gelecekteki Geliştirmeler ve Öneriler
Bu proje, hukuk bürolarının verimliliğini artırmak için önemli bir adım olsa da, daha da geliştirilebilir. Örneğin:
- AI tabanlı belge analizi: Gelen belgelerin içeriğinin otomatik olarak özetlenmesi ve sınıflandırılması.
- Gerçek zamanlı bildirimler: Zoom çağrıları sırasında otomatik not oluşturma ve acil durumlarda anında uyarılar.
- Çoklu hukuk büroları için destek: Farklı büroların aynı zamanda kullanabileceği çoklu kiracı (multi-tenant) bir yapıya geçiş.
Bu entegrasyon, hukuk sektöründe dijital dönüşümün sadece bir başlangıcı. Benzer yaklaşımlar, diğer sektörlerdeki çoklu platform senkronizasyonu ihtiyaçları için de ilham kaynağı olabilir.
Yapay zeka özeti
Manuelle Datenübertragung zwischen CRM, Telefonie und Dokumentenmanagement verschlingt Ressourcen in Anwaltskanzleien. Eine US-Kanzlei sparte durch intelligente Automatisierung über 90% ihrer Admin-Zeit – und das ohne Qualitätsverlust. So funktioniert die Lösung.
Etiketler