---
title: "n8n ile Her Sabah Otomatik Günlük Brifing"
description: "n8n ile takvim, e-posta ve görevleri birleştirip AI destekli sabah brifingi oluştur. Telegram'a gönder. AgentRoost'ta API anahtarı gerekmez, AI kredisi dahil."
canonical: https://agentroost.app/tr/blog/n8n-gunluk-ozet-toplanti-gundem-otomasyon
date: 2026-05-05T04:00:00Z
---

[Canonical URL](https://agentroost.app/tr/blog/n8n-gunluk-ozet-toplanti-gundem-otomasyon)

Güne başlamadan önce takvime bak, e-postayı tara, görev listesini gözden geçir — bu rutinin kendisi zaten 20 dakika götürüyor. Peki ya bunların hepsi otomatik olarak derlenseydi, özetlenseydi ve her sabah telefonuna bir mesaj olarak gelseydi?

Bu yazıda tam olarak bunu yapan bir n8n akışı kuruyoruz: **Google Calendar + Gmail (veya Outlook) + bir görev listesi kaynağı → AI özetleme düğümü → Telegram mesajı.** Akış her sabah saat 07:30'da tetiklenir, sana "bugün ne var, neye dikkat etmeli, hangi e-postalar bekliyor" sorusunu yanıtlayan yapılandırılmış bir brifing üretir.

---

## Akışın Mimarisi

Beş ana blok var:

1. **Schedule Trigger** — Sabah tetiklemesi
2. **Veri Toplama** — Takvim, e-posta, görevler (paralel HTTP Request düğümleri)
3. **Code / Set Düğümü** — Ham veriyi birleştirip tek bir metin haline getirme
4. **AI / LLM Düğümü** — Yapılandırılmış brifing üretme
5. **Telegram Düğümü** — Mesajı gönderme

---

## Adım Adım Kurulum

### 1. Schedule Trigger

n8n editöründe yeni bir akış aç. İlk düğüm olarak **Schedule Trigger** ekle.

```
Trigger interval: Days
Days between triggers: 1
Trigger at Hour: 7
Trigger at Minute: 30
```

Bu düğüm her gün 07:30'da akışı başlatır. Hafta sonlarını atlamak istiyorsan yanına bir **IF** düğümü ekleyip `{{ $now.weekday() }}` ifadesini kontrol edebilirsin (1–5 arası iş günü, 6–7 hafta sonu).

---

### 2. Google Calendar'dan Bugünün Toplantılarını Çek

**HTTP Request** düğümü ekle, aşağıdaki ayarları yap:

```
Method: GET
URL: https://www.googleapis.com/calendar/v3/calendars/primary/events
Authentication: OAuth2 (Google Calendar)
Query Parameters:
  timeMin: {{ $now.startOf('day').toISO() }}
  timeMax: {{ $now.endOf('day').toISO() }}
  singleEvents: true
  orderBy: startTime
```

OAuth2 kimlik bilgilerini bir kez n8n'e tanımlarsın, sonrasında akış otomatik yeniler. Yanıtta `items[]` dizisi döner; her öğede `summary`, `start.dateTime`, `description`, `attendees` alanları bulunur.

---

### 3. Gmail'den Okunmamış E-postaları Çek

İkinci bir **HTTP Request** düğümü ekle:

```
Method: GET
URL: https://gmail.googleapis.com/gmail/v1/users/me/messages
Authentication: OAuth2 (Gmail)
Query Parameters:
  q: is:unread newer_than:1d
  maxResults: 15
```

Bu sorgu son 24 saatte gelen, henüz okunmamış en fazla 15 e-postayı döndürür. Sadece `id` listesi gelir; tam içerik için her ID'ye ayrı bir GET atman gerekir. Bunu yapmak istemiyorsan Gmail'in `format=metadata` parametresiyle sadece gönderen + konu satırını çekebilirsin — brifing için bu çoğu zaman yeterlidir.

```
URL: https://gmail.googleapis.com/gmail/v1/users/me/messages/{{ $json.id }}
Query Parameters:
  format: metadata
  metadataHeaders: From,Subject,Date
```

Bunu bir **Loop Over Items** düğümüyle zincirlersen her mesaj için tek tek çekim yaparsın.

---

### 4. Görev Listesi (Todoist / Google Tasks / Notion)

Hangi aracı kullandığına bağlı:

- **Google Tasks**: `https://tasks.googleapis.com/tasks/v1/lists/@default/tasks?showCompleted=false&dueMax={{ $now.endOf('day').toISO() }}`
- **Todoist**: `https://api.todoist.com/rest/v2/tasks?filter=today` (Authorization: Bearer token)
- **Notion Database**: HTTP Request + Notion API'ye `filter: { property: "Due", date: { equals: today } }`

Her üçü de düz bir JSON dizisi döndürür, işleme mantığı aynıdır.

---

### 5. Veriyi Birleştir: Code Düğümü

Üç kaynaktan gelen veriyi tek bir metin bloğuna dönüştür. **Code** düğümü ekle (JavaScript modu):

```javascript
const calItems = $('HTTP Request - Calendar').all();
const mailItems = $('HTTP Request - Gmail').all();
const taskItems = $('HTTP Request - Tasks').all();

const meetings = calItems.map(i => {
  const ev = i.json;
  const start = ev.start?.dateTime || ev.start?.date || '';
  return `- ${start.slice(11,16)} ${ev.summary}`;
}).join('\n') || 'Bugün toplantı yok.';

const emails = mailItems.map(i => {
  const headers = i.json.payload?.headers || [];
  const from    = headers.find(h => h.name === 'From')?.value || '';
  const subject = headers.find(h => h.name === 'Subject')?.value || '';
  return `- ${from}: ${subject}`;
}).join('\n') || 'Okunmamış e-posta yok.';

const tasks = taskItems.map(i => `- ${i.json.title}`).join('\n') || 'Bugün için görev yok.';

return [{
  json: {
    rawContext: `## Bugünün Takvimi\n${meetings}\n\n## Bekleyen E-postalar\n${emails}\n\n## Yapılacaklar\n${tasks}`
  }
}];
```

---

### 6. AI / LLM Düğümü: Brifing Üret

**AI / LLM** düğümü ekle. System prompt:

```
Sen kısa ve net konuşan bir kişisel asistansın. Aşağıdaki ham verileri alıp profesyonel bir sabah brifingi üreteceksin. Şu bölümleri içersin:
1. Bugünün Öncelikleri (max 3 madde)
2. Toplantı Gündemi (saat sıralamasıyla)
3. Dikkat Gerektiren E-postalar (önemli görünenleri vurgula)
4. Tamamlanması Gereken Görevler
Kısa ve öz yaz. Türkçe kullan.
```

User prompt alanına şunu gir:

```
{{ $json.rawContext }}
```

Model olarak istediğin herhangi birini seçebilirsin — akış hangi modeli kullandığına bakılmaksızın çalışır çünkü AI kredisi zaten aboneliğe dahildir, ayrı API anahtarı gerekmez.

---

### 7. Telegram Düğümü

**Telegram** düğümü ekle:

```
Operation: Send Message
Chat ID: {{ $env.TELEGRAM_CHAT_ID }}
Text: {{ $json.output }}
Parse Mode: Markdown
```

Telegram bot tokenini n8n'in Credentials bölümüne eklemen gerekir (BotFather'dan bir bot oluşturarak alırsın). Chat ID'ni de n8n ortam değişkenlerine (`Settings → Variables`) kaydet. Webhook URL'lerin otomatik olarak HTTPS'dir — SSL kurulumu sıfır.

---

## Pratik İpuçları

**Hata yönetimi:** HTTP Request düğümlerine "Continue on Error" modunu aç; bir kaynak geçici olarak düşerse diğerleri yine de çalışır ve brifing kısmen de olsa gelir.

**Kişiselleştirme:** IF düğümüyle "toplantı 5'ten fazlaysa yoğun gün uyarısı ekle" gibi dallanmalar kurabilirsin.

**Gürültüyü azalt:** Gmail sorgusuna `-category:promotions -category:social` ekle; promosyon ve sosyal medya bildirimlerini brifingin dışında bırakır.

**Zaman dilimi:** Schedule Trigger'daki timezone ayarının kendi saat diliminle eşleştiğini kontrol et. Varsayılan UTC ise 07:30 tetiklemesi Türkiye'de 10:30'a denk gelir.

---

## Bu Akışı AgentRoost'ta Çalıştırmak

Kendi sunucunda bu akışı kurmak istesen şunlarla uğraşman gerekir: Docker kurulumu, SSL sertifikası, cron zamanlayıcı, OpenAI API anahtarı ve aylık fatura takibi. Sonra güncelleme geldiğinde tekrar uğraşırsın.

AgentRoost'ta süreç farklı işliyor:

1. [agentroost.app/tr/agents/n8n](/tr/agents/n8n) sayfasına git, **n8n** çerçevesini seç.
2. Instance'ına bir isim ver — birkaç saniye içinde `https://<senin-id>.agentroost.app` adresinde kendi n8n editörün açılır. Bu instance tamamen senin: workflow'larını yönetir, verilerini dışa aktarır, istediğin zaman takımınla paylaşırsın.
3. Yukarıdaki akışı kur. AI / LLM düğümüne API anahtarı girmen gerekmez; AI kredisi aboneliğe dahildir.
4. Schedule Trigger'ı kaydet — artık her sabah çalışacak.

Webhook URL'lerin otomatik olarak `https://<senin-id>.agentroost.app/webhook/...` şeklinde geliyor; SSL kurulumu, port açma veya reverse proxy yapılandırması yok.

Fiyatlandırma $19,99/aydan başlıyor — bu fiyata sunucu, AI kullanımı ve kurulum dahil. 14 gün iade garantisi var, istediğin zaman iptal edebilirsin. [Planları karşılaştır](/tr/pricing).

---

## Sonuç

Bu akış bir kez kurulduğunda her sabah takvimini, e-postalarını ve görev listeni çekip sana derlemiş, önceliklendirilmiş ve okunabilir bir brifing olarak gönderir. Sabah rutinindeki "nereye bakacağım" kargaşasını ortadan kaldırır. Değişken iş yükü olan günlerde ne kadar kritik olduğunu ilk birkaç günde anlarsın.
