Otomasyon & Webhook'lar

TodoMore'u Slack, n8n, Zapier veya kendi servisinize bağlayın. Olay temelli webhook akışı.

Son güncelleme:

TodoMore içindeki olayları başka bir sisteme akıtmanın iki yolu var: webhook (gerçek zamanlı POST) ve API polling (yakında, 2027 Q1).

API ne zaman?

Genel API ve token bazlı kimlik doğrulama 2027 Q1’de geliyor. Şu an webhook ile başlayabilirsiniz; aynı endpoint’leriniz API çıktıktan sonra da çalışacak.

Webhook nedir?

Workspace’inizde bir olay olduğunda (yeni görev, durum değişikliği, dosya yükleme) TodoMore sizin belirlediğiniz URL’e bir JSON POST gönderir. Sizin endpoint’iniz bu POST’u dinler ve yapacağı işi tetikler.

TodoMore  ──── POST ────►  Sizin URL'iniz
   │              │
 olay           JSON gövde

Hızlı kurulum

  1. Workspace ayarlarına gidin

    Ayarlar → Geliştirici → Webhook’lar. Sağ üstten + Yeni webhook butonuna basın.

  2. URL’inizi girin

    HTTPS bir endpoint olmalı. Örnek: https://api.benim-servisim.com/todomore . Test için webhook.site kullanabilirsiniz.

  3. Hangi olayları dinleyeceksiniz?

    project.* tüm proje olaylarını, task.created sadece yeni görevi dinler. Hepsini seçmeniz gerekmez.

  4. Test edin & kaydedin

    Webhook listesinde “Test gönder” butonuna basın, endpoint’inizin 200 döndüğünü görün, ardından kaydedin.

Olay listesi

OlayTetiklendiği zaman
project.createdYeni proje oluşturulduğunda
project.updatedProje alanı değiştiğinde
project.archivedProje arşivlendiğinde
task.createdYeni görev eklendiğinde
task.updatedGörev güncellendiğinde (atama, durum, vb.)
task.completedGörev tamamlandı işaretlendiğinde
task.commentedGöreve yorum eklendiğinde
file.uploadedDosya yüklendiğinde
file.deletedDosya silindiğinde
crew.member_addedWorkspace’e yeni üye eklendiğinde
billing.plan_changedPlan yükseltme/düşürme olduğunda

Olay yükü (payload)

Her olay bu şekilde gelir:

{
  "id": "evt_01HK4...",
  "type": "task.created",
  "createdAt": "2026-05-11T14:23:00Z",
  "workspace": {
    "id": "ws_01HJ...",
    "name": "Anadolu Reklam"
  },
  "data": {
    "task": {
      "id": "tsk_01HK...",
      "title": "Anasayfa hero görseli",
      "projectId": "prj_01HJ...",
      "assignees": ["usr_01HJ..."],
      "due": "2026-05-13",
      "status": "todo"
    }
  }
}

Güvenlik

İmza doğrulaması zorunlu

Her POST’ta X-TodoMore-Signature header’ı bulunur. Webhook secret’ınızla HMAC-SHA256 doğrulaması yapmadan endpoint’inizi işletmeyin — saldırgan istek atabilir.

Doğrulama örneği (Node.js):

import crypto from "node:crypto";
 
function verify(req: Request, secret: string): boolean {
  const sig = req.headers.get("x-todomore-signature");
  const raw = await req.text();
  const expected = crypto
    .createHmac("sha256", secret)
    .update(raw)
    .digest("hex");
  return sig === expected;
}

Yeniden deneme & sıralama

  • 200 dönmezseniz: 1 sn, 5 sn, 30 sn, 2 dk, 10 dk aralıklarla 5 kez yeniden deneriz.
  • Tüm denemeler başarısızsa: olay loglanır, panelde “Başarısız webhook” uyarısı gösterilir.
  • Sıralama garantili değildir. İki olay farklı sırada gelebilir; her payload’da createdAt ve id ile sıralayın.

Pratik kullanım örnekleri

Slack'e atama bildirimi

task.updated → kanala 'X kişisine yeni görev atandı' mesajı.

n8n ile rapor

Hafta sonu task.completed olaylarını toplayıp PDF gönder.

Drive'a otomatik yedek

file.uploaded → aynı dosyayı Google Drive'a kopyala.

Müşteriye e-posta

project.archived → müşteriye 'Projeniz tamamlandı' e-postası.