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

_2026-09-25 · 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.

## 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](https://app.shager.ai/api/v1/openapi.json).

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ı:

```bash
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](/en/blog/utm-per-account-lead-attribution) 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](/en/blog/measuring-leads-from-agent-content) 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](https://code.claude.com/docs/en/headless) 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](https://code.claude.com/docs/en/mcp) başlıklarda `${VAR}` genişletmeyi destekliyor:

```json
{
  "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](https://code.claude.com/docs/en/skills) göre Claude Code, proje becerilerini `.claude/skills/<name>/SKILL.md` konumundan yükler:

```markdown
---
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:

```bash
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](https://code.claude.com/docs/en/permissions) anlatılıyor. Bu listede olmayan hiçbir şey gözetimsiz bir çalıştırmada otomatik olarak onaylanmaz.

## 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](/en/blog/api-keys-scopes-and-audit) 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ı](/en/agents) 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.

---
Source: https://shager.ai/tr/blog/weekly-client-report-by-agent
