Haftalık müşteri raporu, her pazartesi siz uyanmadan bir ajan tarafından yazılsın

Bir ajanın Shager'dan derlediği haftalık müşteri raporu: yayınlananlar, başarısız olanlar, hesap ve gönderi bazında tıklamalar ve CRM verisiyle eşleştirme.

Bir ajan, müşterinin haftalık dağıtım raporunu Shager'dan üç şey çekerek yazabilir: hafta içinde yayınlanan gönderiler ve her hesaptaki sonuçları, get_analytics ile hesap ve gönderi bazında tıklamalar ve başarısız olan her şeyin listesi. Sonra bu tıklamaları, her hesabı tanımlayan utm_content değeri üzerinden müşterinin CRM'indeki potansiyel müşterilerle eşleştirir. Bunu yalnızca okuma yetkili bir anahtarla zamanlanmış olarak çalıştırın; pazartesi sabahı rapor bir klasörde sizi bekliyor olsun.

Düşünmeyi gerektiren kısım kod değil. Müşterinin gerçekte neyi görmesi gerektiğine karar vermek ve rakamların neyi ölçtüğü konusunda dürüst olmak.

Haftalık bir dağıtım raporunda neler olmalı?

Dört bölüm yeter. Gerisi aylık değerlendirmeye aittir.

  1. Teslimat. Kaç gönderi çıktı, kaç hesaba gitti ve hangi hesaplar başarısız oldu. Müşteriler bir şey kaybolana kadar bunu nadiren sorar; kaybolduğunda da sordukları tek şey bu olur.
  2. Hesap bazında tıklamalar. Hangi sayfalar, şubeler ya da kanallar insanları siteye gönderdi. Bütçeleri değiştiren bölüm budur.
  3. Gönderi bazında tıklamalar. Tüm hesaplarda hangi içerik işe yaradı.
  4. Yapılacaklar. Müşterinin yapması gerekenler: bir hesabı yeniden bağlamak, gelecek haftanın taslaklarını onaylamak, eksik materyalleri göndermek.

Neyin eksik olduğuna dikkat edin: erişim, gösterim, beğeni. Shager, kendi takip linklerindeki tıklamaları hesap ve gönderi bazında ölçer. Bir sosyal medya analiz paketi olduğunu iddia etmez; rapor da öyleymiş gibi davranmamalıdır.

Çubuk grafik: Shager takip linklerine gelen tıklamalar hesap bazında; hangi sayfanın trafik getirdiğini gösterir.
Ajanın get_analytics'ten aldığı veriler. (Örnek, gerçek veri değil)

Veri çağrıları

Bir müşteri çalışma alanı için ajan şu sırayı çalıştırır. Araç adları gerçek MCP araçlarıdır; REST karşılıkları OpenAPI belgesinde.

  1. Müşterinin çalışma alanını adından bulmak için list_workspaces.
  2. status değeri PUBLISHED olan bir list_posts, ardından aynısı PARTIALLY_PUBLISHED ve FAILED için. limit en fazla 100 olabilir.
  3. Hesap bazında durumu, yayındaki URL'leri ve hata mesajlarını almak için haftanın her gönderisi için get_post.
  4. Haftayı kapsayan from ve to değerleriyle get_analytics.
  5. Kanal kimliklerini okunabilir hesap adlarıyla eşlemek ve bağlantı durumu değişen hesapları fark etmek için list_channels.

REST üzerinden analiz çağrısı:

curl -s "https://app.shager.ai/api/v1/workspaces/ws_example/analytics?from=2026-09-14T00:00:00%2B03:00&to=2026-09-20T23:59:59%2B03:00" \
  -H "Authorization: Bearer $SHAGER_READ_KEY"

Bu URL'deki iki ayrıntı insanları sık sık yakar. Farktaki + işareti sorgu dizesinde %2B olarak kodlanmalıdır; yoksa sunucu onu boşluk olarak okur. Hafta sınırları da sunucunun değil, müşterinin saat dilimine göre hesaplanmalıdır. from verilmezse get_analytics varsayılan olarak son 30 günü alır; haftalık bir raporun istediği bu değildir.

Tıklamalar potansiyel müşteri değildir, o yüzden eşleştirin

Shager her hesaba kendi kısa linkini ve UTM etiketlerini verir; utm_content hesabı tanımlar. Eşleştirmeyi mümkün kılan da budur. CRM, potansiyel müşterileri açılış sayfasındaki formda yakalanan UTM değerleriyle kaydeder; ajan da onları aynı utm_content üzerinden Shager'ın hesap başına tıklama sayılarıyla eşleştirir.

Ortaya çıkan tablo raporun kalbidir:

Hesap Gönderi Tıklama (Shager) Potansiyel müşteri (CRM) Not
Aurora Downtown 4 ... ...
Aurora Northside 4 ... ... yeniden bağlanmalı

Sütunlar arasındaki farklar bilgidir. Çok tıklama ve hiç potansiyel müşteri olmaması bir dağıtım sorunu değil, açılış sayfası ya da teklif sorunudur. Hesap bazında potansiyel müşteri ilişkilendirmesi hakkındaki önceki rehberimiz, potansiyel müşteri sütununu güvenilir kılan form alanlarını ve CRM eşlemesini anlatıyor; ajan içeriğinden gelen potansiyel müşterileri ölçmek ise ajan tarafını ele alıyor.

CRM erişiminiz yoksa rapor yalnızca tıklamalarla da işe yarar. Bunu raporun başlığında belirtin. Tıklamaları "sonuç" olarak etiketleyen bir rapor, ajansların bir çeyrek sonra güven kaybetmesinin yoludur.

Claude Code ile gözetimsiz çalıştırmak

Claude Code, arayüzsüz mod belgelerinde anlatıldığı gibi claude -p ile etkileşimsiz çalışabilir. Bu da haftalık raporu bir cron işine dönüştürür.

Önce, anahtarı ortamdan okuyan bir .mcp.json dosyasına sahip bir rapor proje klasörü. Claude Code'un MCP belgeleri başlıklarda ${VAR} genişletmeyi destekliyor:

{
  "mcpServers": {
    "shager": {
      "type": "http",
      "url": "https://app.shager.ai/api/mcp",
      "headers": { "Authorization": "Bearer ${SHAGER_READ_KEY}" }
    }
  }
}

Sonra talimatlar; mantık bir crontab satırında değil tek bir dosyada dursun diye beceri (skill) olarak kaydedilir. Beceri belgelerine göre Claude Code, proje becerilerini .claude/skills/<name>/SKILL.md konumundan yükler:

---
name: weekly-report
description: Compile the weekly distribution report for one client workspace from Shager. Use when asked for a weekly client report.
---

The argument is the client workspace name: $ARGUMENTS

1. Resolve the workspace with list_workspaces. Read its timezone.
2. Compute last Monday 00:00 to Sunday 23:59:59 in that timezone, with offsets.
3. Collect posts with list_posts (PUBLISHED, PARTIALLY_PUBLISHED, FAILED) and
   keep those published in the window. Call get_post for each.
4. Call get_analytics for the window. Map channel ids to names with list_channels.
5. If crm/<workspace>.csv exists, join leads on utm_content.
6. Write reports/<workspace>/<YYYY-MM-DD>.md with four sections: Delivery,
   Clicks by account, Clicks by post, Actions. Use tables. No adjectives about
   performance; numbers and one plain sentence per section.
7. Never call any tool that creates, schedules or cancels anything.

Ve yalnızca okuma araçlarını ve dosya yazmayı önceden onaylayan zamanlanmış komut:

cd ~/agency-reports && claude -p "/weekly-report Aurora" \
  --allowedTools "mcp__shager__list_*,mcp__shager__get_*,mcp__shager__whoami,Write" \
  --output-format json > logs/aurora-$(date +%F).json

mcp__<server>__ önekli ve sonunda joker karakter bulunan izin kuralı sözdizimi, Claude Code'un izin başvuru belgesinde anlatılıyor. Bu listede olmayan hiçbir şey gözetimsiz bir çalıştırmada otomatik olarak onaylanmaz.

Diyagram: Tek bir gönderi birkaç hesaba gider ve her hesap kendi kısa linkini ve utm_content etiketini alır.
Takip linkleri hesap başına tıklamaları gösterir. Dönüşümler için kendi analiz aracınız veya CRM'iniz gerekir. (Örnek)

Burada yalnızca okuma yetkili anahtar neden önemli

Beceri, modele yazmamasını söyler. Anahtar ise yazmayı imkânsız kılar. Raporlama için ajan panelinden yalnızca read yetkisi olan ayrı bir anahtar oluşturun ve başka hiçbir yerde kullanmayın. Bu anahtar bir gün sızarsa, olabilecek en kötü şey birinin tıklama sayılarını okumasıdır. Yetki modelinin tamamını API anahtarları, yetki kapsamları ve denetim yazısında anlatıyoruz.

Raporlama ajanının yaptığı her çağrı o paneldeki denetim kaydında da görünür. İlk birkaç pazartesi, beklediğiniz şeyleri çağırdığını ve fazlasını çağırmadığını doğrulamanın iyi bir yolu budur.

Anlatı kısmını yazmak

Ajanın her bölüm için bir iki cümle yazmasına izin verin, ama onu sınırlayın. Kurallar olmadan modeller yüzde 4'lük bir değişimi "kayda değer bir artış" olarak anlatır. Benim talimatım dolaysız: rakamı söyle, varsa önceki haftayla karşılaştır ve veri göstermedikçe neden hakkında hiçbir şey söyleme. Bir şube sayfası bağlantısı salı günü sona erdiği için sıfır tıklama aldıysa, bu verinin gösterdiği bir nedendir. "Kitle yorgunluğu" değildir.

Sık sorulan sorular

Ajan raporu doğrudan müşteriye gönderebilir mi?

Ona bir e-posta aracı verirseniz gönderebilir, ama ilk gün bunu yapmazdım. Önce dosyayı yazdırın, birkaç haftalık çıktıyı kontrol edin, sonra teslimatı otomatikleştirin. Rapor, müşterinin sizin işinize baktığı penceredir; otomatik gönderilen yanlış bir rakam, kazanılan zamandan daha pahalıya patlar.

get_analytics potansiyel müşterileri de içeriyor mu?

Hayır. Shager'ın takip linklerindeki tıklamaları, hesap ve gönderi bazında, bir tarih aralığında döndürür. Potansiyel müşteriler müşterinin CRM'inden ya da form aracından gelir ve utm_content üzerinden eşleştirilir. Rapor bu iki kaynağı görünür biçimde ayrı tutmalıdır.

Rapor ne kadar geriye bakabilir?

get_analytics gönderdiğiniz her from ve to değerini kabul eder; from verilmediğinde varsayılan son 30 gündür. Aydan aya karşılaştırmalar için geçmiş raporları doğruluk kaynağı olarak saklamak yerine aynı beceriyi farklı bir aralıkla çalıştırın.

Bundan sonra

Henüz bir anahtarınız yoksa, ajan giriş noktası nasıl oluşturacağınızı ya da bir ajanın kendi kendine nasıl kaydolacağını gösteriyor. Tek bir müşteriyle başlayın, üç pazartesinin raporlarını kendiniz okuyun ve ancak ondan sonra diğerlerini ekleyin.

Kendi hesaplarınızda deneyin.

Lansman döneminde ücretsiz, kart gerekmez. Bağlayın, bir kez yazın; Shager yayınlasın ve ölçsün.