Ugrás a tartalomhoz
← Vissza a naplóhoz

A tartalom scheduler hogyan mukodik — a pipeline ami ezt a cikket is kikuldte

A Nortinia Sales AI tartalom scheduler hogyan mukodik: target, plan, generate, eval, approval, publish. Idempotency key, retry policy, 2847 cikk hat honap alatt.

A tartalom scheduler — hogyan működik

A Nortinia Sales AI tartalom-scheduler modulja egyszerre két szerepet játszik: marketing automation a sales pipeline-hoz (cikkek, hírlevelek, sales-driven content), és infrastruktúra a Nortinia saját family-site cikkeinek publikálásához. Ezt a cikket, amit most olvasol, ugyanaz a pipeline tette ki — egy targetből, egy generálással, egy eval-átmeneten és egy publish HTTP POST-tal.

A target koncepció

Egy target egy konkrét célt definiál:

  • URL — hová publikálunk (storefront /api/blog/publish endpoint)
  • Auth — bearer token a fogadó panelnek
  • Topics — milyen témákban generálunk (pl. salesai, assistant, content)
  • Cadence — milyen gyakran (heti N cikk, vagy esemény-trigger)
  • Locale — milyen nyelven (jelenleg HU/EN, jövő negyedévben DE/SK)
  • Approval mode — auto-publish vagy manuális szerkesztői queue
  • Brand voice — tone, tiltott kifejezések, kötelező CTA-k, persona

A target Postgres FORCE RLS alatt él, és minden generálás onnan indul. Egy tenantnek lehet több targetje (pl. nortinia.com + finance.netorigo.com + külön ügyfél site).

A pipeline szakaszai

  1. Trigger — időzítő (BullMQ cron) vagy esemény (új produkt-launch, új lead-segment, blog-cadence). A trigger kiválaszt egy target-et és egy topic-ot.
  2. Plan — az engine kap egy strukturált prompt-ot a target persona-jával és tone-jával, és visszaad egy cikk-vázlatot: cím, struktúra, kulcs-állítások, várt hossz.
  3. Generate — a vázlat alapján a teljes cikk megíródik. Egy hívás, egy modell. Nincs retry middle-of-generation: ha hibázik, eldobjuk és új job-ot indítunk.
  4. Eval — szigorú kapu (lásd külön Content Studio cikk). Hat dimenzió mentén pontoz. Ha nem megy át, vissza a generátorba — max 3 iteráció.
  5. Approval — auto módban azonnal megy; manuális módban a queue-ba kerül, és egy szerkesztő engedi vagy javítja.
  6. Publish — HTTP POST a fogadó panel /api/blog/publish endpointjára, articleId alapján idempotens.

Idempotency keys

A scheduler központi szabálya: ugyanaz az articleId nem mehet ki kétszer. Ha a HTTP POST 2xx-szel jött vissza, lokálisan rögzítjük; ha a fogadó oldalon már létezik az articleId, 200-ral válaszol és nem duplikál.

Miért fontos: a retry policy 3 attempttel próbálkozik exponential backoff-fal (5s, 30s, 300s). Ha az első attempt sikerült de a hálózat megszakadt a response előtt, a 2. attempt nem akarja még egyszer publikálni. Az articleId a védőkorlát.

Retry policy és failure modes

Négy failure category:

  • TRANSIENT (5xx, network timeout): retry up to 3x
  • AUTH (401, 403): dead-letter queue, ops alarm — bearer token expired vagy revoked
  • VALIDATION (400, schema mismatch): dead-letter queue, content team alarm — Zod validation failure a fogadó oldalon
  • DUPLICATE (200 with existed: true): logged, no action

A dead-letter queue heti review-n megy. A 2026 első félévében 23 dead-letter elem érkezett: 18 AUTH (egy ügyfél elfelejtette megújítani a tokenjét), 4 VALIDATION (új schema-mező, amit nem generáltunk), 1 ismeretlen (Cloudflare 522, eventually resolved).

Per-target konfiguráció — egy konkrét példa

Ez a cikk a következő target-tel készült:

{
  "id": "01HX-NRT-SEED-TARGET-NORTINIA-SALESAI",
  "url": "https://nortinia.com/api/blog/publish",
  "topics": ["salesai"],
  "cadence": "weekly-2",
  "locale": "hu+en",
  "approvalMode": "manual",
  "brandVoice": "nortinia-technical-honest"
}

A nortinia-technical-honest brand voice rövid leírása: konkrét számokkal érvelünk, nem mondunk "forradalmi" vagy "diszruptív" jelzőket, jelezzük amit nem tudunk vagy nem építettünk meg, és minden cikkben legalább egy hibát beismerünk amit elkövettünk.

Mit nem csinál a scheduler

  • Nem küld emailt közvetlenül — az külön newsletter pipeline
  • Nem ad ki social poszt-t — a content-scheduler csak blog-cikket publikál; a social poszt-rendszer (LinkedIn, X) egy másik modul, és a generált cikkből származtatott rövid változatot küld
  • Nem optimalizál SEO-t auto-mode-ban — SEO-kulcsszó-targeting külön feature, csak ha a target explicit kéri

Számok hat hónap után

  • 2 847 cikk publikálva 14 design partner tenant alatt
  • 67% first-iteration eval pass rate
  • 12 perc átlagos teljes pipeline-idő (target read → publish HTTP 200)
  • 0,31 USD átlagos modell-költség cikkenként
  • 23 dead-letter elem, mindegyik retroaktívan feldolgozva

Mit építünk most

  • Article versioning — minden iteráció trace-elhető legyen, hogy a tenant lássa miért bukott meg az eval első körben
  • In-line szerkesztés a manuális queue-ban — most kódból vagy külön UI-ban editálunk, ezt 2 hetes UX-fókusz lesz
  • Cross-target tanulás — két hasonló iparágú target közös tanulás-bankba meríthet, de a privacy oldal nem trivális (egy tenant tartalom-mintáját nem akarjuk másnak átadni). Halasztva.

A scheduler önmagát is dokumentálja: ez a cikk létezik, te olvasod, tehát működik.

Beszéljünk a projektedről

Mondd el, mit építesz — meglátjuk, hogyan segíthetünk.

A tartalom scheduler hogyan mukodik — a pipeline ami ezt a cikket is kikuldte — Nortinia Journal | Nortinia