Desarrolladores

Webhooks

Recibe una llamada HTTP con JSON claro en cuanto un artículo esté listo y cada vez que cambie su estado.

Eventos

Dos eventos, cada uno activado en una etapa concreta de tu flujo de campañas.

article.readyCuando termina la redacción

Se envía cuando un artículo se ha redactado y supera la revisión automática: tu señal para publicarlo.

article.status_changedCuando cambia el estado

Se envía cuando el estado de un artículo cambia en TrafficWins, por ejemplo cuando lo publicas o lo archivas.

Carga útil

Cada evento envía este cuerpo JSON mediante POST. Ambos eventos comparten la misma estructura.

{
  "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"
  }
}

Encabezados de solicitud

TrafficWins envía JSON claro por HTTPS con estos encabezados.

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

Configúralo

Añade la URL de tu endpoint en TrafficWins, en los ajustes de publicación de tu sitio. Enviaremos cada evento como JSON claro.

Abrir TrafficWins

Empieza con un solo sitio web

Apúntalo a tu sitio. Lee los primeros borradores mañana.

Inicia una suscripción, conecta un sitio y deja que TrafficWins investigue, planifique, redacte y revise tu primera campaña — primero artículos, después redes. No necesitas claves de API de IA aparte.

Abrir TrafficWins

Prueba gratis de 3 días · cancela cuando quieras