Günümüz iş dünyasında, bir şirketin CRM sistemine kaydedilen verilerin büyük bir kısmı e-posta iletişimlerinden gelmektedir. Ancak çoğu kuruluş, her e-postanın altında yer alan imzaların sunduğu değerli bilgileri yeterince kullanmamaktadır. İşte tam da bu noktada, otomatik bir ajan kullanarak imzaları CRM sisteminize aktarmanın ve verilerinizi zenginleştirmenin yolu ortaya çıkıyor.
E-posta imzaları, genellikle ad, unvan, telefon numarası, LinkedIn profili ve şirket bilgileri gibi yapısal veriler içerir. Bu veriler, her e-postada ücretsiz olarak sunulmasına rağmen çoğu CRM sistemi tarafından ihmal edilmektedir. Araştırmalara göre, iş e-postalarının yaklaşık %82'si en az ad ve unvan gibi temel bilgileri içeren bir imza içermektedir. Bu verilere ulaşmak için pahalı veri sağlayıcılarına ya da büyük dil modellerine (LLM) ihtiyacınız yok. Basit bir regex çözümü ve birkaç yüz satırlık kod ile bu verileri otomatik olarak çıkarabilir ve CRM sisteminize entegre edebilirsiniz.
Regex, Dil Modellerine Karşı: Neden Basit Çözümler Kazanır?
Dil modelleri, gerçekten yapısal olmayan metinler için oldukça etkili olabilir. Ancak e-posta imzaları, öngörülebilir bir yapıya sahiptir: genellikle 3 ila 6 satırdan oluşur ve RFC 3676 standardına göre -- ile mesaj gövdesinden ayrılır. Bu yapıyı kullanarak, regex tabanlı bir yaklaşımla imzaların %95'inden fazlasını mikro saniyeler içinde ve sıfır maliyetle çıkarabilirsiniz.
Öncelikle, imza bölümünü tespit etmek için aşağıdaki gibi bir regex desen kümesi kullanabilirsiniz:
SIG_DELIMITERS = [
r"\n--\s*\n", # RFC 3676 standardı
r"\nSent from my (iPhone|iPad|Android)",
r"\nBest,?\s*\n",
r"\nRegards,?\s*\n",
r"\nCheers,?\s*\n",
]
def split_signature(body: str) -> tuple[str, str]:
for pat in SIG_DELIMITERS:
m = re.search(pat, body)
if m:
return body[:m.start()], body[m.end():]
return body, ""Ardından, telefon numarası, LinkedIn profili (/in/ şeklindeki bağlantılar), web sitesi ve unvan gibi alanları çıkarın. Unvanların C-seviyesi, VP, Direktör, Müdür ve çalışan gibi kategorilere ayrılması, verilerin satış ekipleri için daha anlamlı hale gelmesini sağlar. Örneğin, "CEO" gibi bir unvan, verilerin daha etkili bir şekilde yönlendirilmesine yardımcı olur.
Tek Bir Mesajdan Üç Mesaja: Veri Tamamlama Oranını %91'e Çıkarın
Tek bir e-postadan tam bir imza çıkarılması her zaman mümkün değildir. Örneğin, "iPhone'dan gönderildi" yazan bir yanıt ya da sadece adı içeren kısa bir teşekkür mesajı, sınırlı bilgiler sunar. Bu durumda, aynı gönderenin son üç e-postasını çekerek imzaları çıkarmak ve her alan için en eksiksiz değeri almak gerekir.
Aşağıdaki fonksiyon, gönderenin e-posta adresini kullanarak son üç e-postayı çeker ve imzaları birleştirerek en eksiksiz veriyi elde eder:
def enrich(sender_email: str, n: int = 3) -> dict:
messages = list_messages_from(sender_email, limit=n)
signatures = [split_signature(m["body"])[1] for m in messages]
fields = [extract(s) for s in signatures]
return merge_fields(fields)Bu yaklaşımın getirdiği önemli bir avantaj vardır: tek bir mesajdan veri çıkarımı yaklaşık %67 tamamlama oranına sahipken, üç mesajın birleştirilmesiyle bu oran %91'in üzerine çıkar. Bu, verilerin güvenilirliğini artırarak satış ekiplerinin daha etkili bir şekilde kullanmasını sağlar.
Ek bir zenginleştirme yöntemi olarak, gönderenin alan adını kullanarak MX kayıtları üzerinden posta sağlayıcısını, SPF kayıtları üzerinden kullanılan araçları (SendGrid, Salesforce vb.) ve DMARC kayıtları üzerinden güvenlik seviyesini belirleyebilirsiniz. Bu bilgiler, e-posta gövdesi gerektirmeden ücretsiz olarak elde edilebilir.
Ajana Özel Bir Gelen Kutusu Oluşturun
E-posta imzalarını otomatik olarak çekmek için iki farklı yaklaşım kullanılabilir. İlk olarak, ajanın kendi gelen kutusunu (destek@, outreach@ gibi) kullanarak gelen her e-postayı işleyebilirsiniz. İkinci olarak, kullanıcıların imzalarını aktarmasını sağlayacak özel bir e-posta adresi (örneğin, signatureimport@sirketiniz.com) oluşturabilirsiniz.
İkinci yaklaşımda, kullanıcılar imzalarını aktarmak istedikleri e-postaları bu adrese yönlendirir. Webhook, göndereni tanımlar, imza içeriğini çıkarır ve kullanıcının erişim iznine kaydeder:
app.post("/webhooks/signature-import", async (req, res) => {
res.status(200).end();
const event = req.body;
if (event.type !== "message.created") return;
const msg = event.data.object;
if (msg.grant_id !== IMPORT_GRANT_ID) return;
const full = await nylas.messages.find({
identifier: IMPORT_GRANT_ID,
messageId: msg.id,
});
const forwarder = msg.from[0].email;
const targetGrant = await db.grants.findByEmail(forwarder);
if (!targetGrant) return;
const signatureHtml = await extractSignature(full.data.body);
if (!signatureHtml) return;
await saveSignature(targetGrant.grantId, signatureHtml, forwarder);
});Bu sistemde, kullanıcı e-postası ile grant_id arasındaki eşleştirme kritik öneme sahiptir. Bilinmeyen bir gönderenin e-postası dikkate alınmamalıdır. Kaydedilen imza, daha sonra signature_id parametresi kullanılarak gönderilen e-postalara otomatik olarak eklenir. Bu sayede, satış temsilcileri gerçek görünümlü imzalarla iletişim kurabilir.
Karşılaşabileceğiniz Zorluklar ve Çözümleri
- Birden fazla imza içeren e-postalar: Yönlendirilmiş bir e-postada birden fazla kişi imza kullanabilir. En güncel gönderenin imzasını almak için
Forwarded messagebölümünün üstündeki içeriği çıkarın.
- Aşırı büyük çıkarımlar: 20 KB'tan büyük bir blokun imza olmadığı varsayılarak, bu tür durumlar kayıt edilerek atlanmalıdır.
- Grant başına sınır: Her grant, en fazla 10 imza saklayabilir. On birinci imza için mevcut olan bir imza güncellenmelidir.
- Sadece HTML imzalar: İmzalar genellikle HTML biçiminde saklanır. Düz metin içeren bir e-posta imzası boş olarak değerlendirilmelidir.
- Resim ağırlıklı imzalar: Kurumsal imzalar, şirket sunucularında barındırılan logolar ve fotoğraflar içerebilir. Bu URL'lerin çalışmaya devam etmesi için şirketin sunucularının erişilebilir olması gerekir. İmzaları kendi CDN'inizde barındırmak ve URL'leri yeniden yazmak isteyebilirsiniz.
- Sağlamlaştırma gerektiren veriler: İmzaların API tarafından temizlenmesi gerekirken, mantıksal kontrollerin manuel olarak yapılması önemlidir.
Gelecekte, e-posta imzalarını otomatik olarak çekmek ve CRM sistemlerine entegre etmek, şirketlerin verilerini daha verimli kullanmalarına ve satış ekiplerinin daha etkili çalışmalarına olanak tanıyacaktır. Bu basit ancak güçlü yaklaşım, veri yönetiminde devrim yaratabilir ve şirketlerin pazarlama ve satış stratejilerini destekleyebilir.
Yapay zeka özeti
E-posta imzalarını otomatik olarak CRM sisteminize aktarın ve verilerinizi zenginleştirin. Regex tabanlı çözümlerle %91 doğruluk oranına ulaşın.