Dla programistów

Webhooks

Otrzymuj wywołanie HTTP z jawnym JSON, gdy artykuł będzie gotowy i gdy zmieni się jego status.

Zdarzenia

Dwa zdarzenia, każde uruchamiane na określonym etapie potoku kampanii.

article.readyPo zakończeniu pisania

Wysyłane, gdy artykuł zostanie napisany i przejdzie automatyczną weryfikację — sygnał do publikacji.

article.status_changedPrzy zmianie statusu

Wysyłane, gdy status artykułu zmienia się w TrafficWins, na przykład przy publikacji lub archiwizacji.

Ładunek

Każde zdarzenie wysyła to ciało JSON metodą POST. Oba zdarzenia mają tę samą strukturę.

{
  "event": "article.ready",
  "orgId": "org_8c2f1a…",
  "timestamp": "2026-06-15T12:34:56.000Z",
  "article": {
    "id": "art_3b9a7d…",
    "campaignId": "cmp_71d4e0…",
    "campaign": {
      "id": "cmp_71d4e0…",
      "name": "Office ergonomics",
      "language": "en",
      "websiteId": "site_8142…"
    },
    "contentPlan": {
      "id": "plan_f40a…",
      "itemId": "item_901c…",
      "topicClusterId": "cluster_ba52…",
      "topicClusterTitle": "Standing desk buyer fit",
      "role": "pillar",
      "contentRole": "buyer guide",
      "funnelStage": "mofu",
      "primaryKeyword": "standing desk",
      "plannedForDate": "2026-06-15"
    },
    "title": "How to Choose a Standing Desk",
    "slug": "how-to-choose-a-standing-desk",
    "status": "draft",
    "description": "A practical buyer's guide to height, stability, and budget.",
    "content": "# How to Choose a Standing Desk\n\n## Check the fit first\n\nStart with…",
    "tldr": "Choose by fit, stability, and budget.",
    "keyTakeaways": ["Check height range", "Check stability"],
    "keywords": ["standing desk", "ergonomics"],
    "language": "en",
    "articleType": "pillar",
    "category": "office-ergonomics",
    "tags": ["standing desk", "ergonomics"],
    "frontmatterDate": "2026-06-15",
    "author": "TrafficWins Team",
    "wordCount": 1840,
    "readingTimeMinutes": 10,
    "readingTimeText": "10 min read",
    "reviewScore": null,
    "reviewVerdict": "PASS",
    "qualitySummary": "No hard failures remain.",
    "qualityFailedChecks": [],
    "heroImageUrl": "https://cdn.trafficwins.com/articles/3b9a/hero.png",
    "heroImageAlt": "A height-adjustable standing desk in a bright office",
    "images": [
      {
        "kind": "hero",
        "url": "https://cdn.trafficwins.com/articles/3b9a/hero.png",
        "alt": "A height-adjustable standing desk in a bright office",
        "caption": null,
        "contentType": "image/png",
        "byteSize": 102400,
        "base64": "iVBORw0KGgo…",
        "dataUrl": "data:image/png;base64,iVBORw0KGgo…"
      }
    ],
    "files": {
      "llmTxt": {
        "fileName": "how-to-choose-a-standing-desk.llm.txt",
        "contentType": "text/plain",
        "encoding": "utf-8",
        "content": "# How to Choose a Standing Desk\n\nDescription: …"
      },
      "jsonLd": {
        "contentType": "application/ld+json",
        "encoding": "utf-8",
        "content": "{\"@context\":\"https://schema.org\",\"@graph\":[…]}"
      }
    },
    "createdAt": "2026-06-15T12:00:00.000Z",
    "updatedAt": "2026-06-15T12:34:55.000Z"
  }
}

Nagłówki żądania

TrafficWins wysyła jawny JSON przez HTTPS z tymi nagłówkami.

POST /your-endpoint  HTTP/1.1
Content-Type: application/json
User-Agent: TrafficWins-Webhooks/1.0

Konfiguracja

Dodaj URL endpointu w TrafficWins w ustawieniach publikacji witryny. Każde zdarzenie wyślemy jako jawny JSON.

Otwórz TrafficWins

Zacznij od jednej witryny

Wskaż swoją witrynę. Przeczytaj pierwsze szkice jutro.

Rozpocznij subskrypcję, podłącz stronę i pozwól TrafficWins zbadać, zaplanować, napisać i sprawdzić Twoją pierwszą kampanię — najpierw artykuły, potem social. Osobne klucze API AI nie są potrzebne.

Otwórz TrafficWins

3 dni za darmo · anuluj w każdej chwili