[{"data":1,"prerenderedAt":781},["ShallowReactive",2],{"blog-b2b-customer-portal-ai-hu":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":14,"about":25,"sources":34,"cover":70,"og":71,"expertise":72,"locales":73,"lang":76,"title":77,"description":78,"coverAlt":79,"metaTitle":80,"takeaways":81,"faq":87,"toc":103,"blocks":131,"others":508},"b2b-customer-portal-ai","2026-10-13",8,"web",[9,10,11,12,13],"Customer portal","Self-service","Permissions","Caching","AI agents",[15,16,17,18,19,20,21,22,23,24],"B2B customer portal","B2B customer portal AI","B2B self-service portal","order status delivery date","invoice and credit note self-service","reorder from order history","per-user permissions portal","deflection rate benchmark","cost per contact","headless B2B portal Nuxt",[26,29,31],{"name":27,"url":28},"Web portal","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FWeb_portal",{"name":10,"url":30},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSelf-service",{"name":32,"url":33},"HTTP caching (RFC 9111)","https:\u002F\u002Fwww.rfc-editor.org\u002Frfc\u002Frfc9111.html",[35,38,41,44,47,50,52,55,58,61,64,67],{"title":36,"url":37},"Gartner: only 14% of customer service issues are fully resolved in self-service (19 Aug 2024)","https:\u002F\u002Fwww.gartner.com\u002Fen\u002Fnewsroom\u002Fpress-releases\u002F2024-08-19-gartner-survey-finds-only-14-percent-of-customer-service-issues-are-fully-resolved-in-self-service",{"title":39,"url":40},"ContactBabel: The Inner Circle Guide to Self-Service (updated Dec 2025)","https:\u002F\u002Fwww.contactbabel.com\u002Fthe-inner-circle-guide-to-self-service\u002F",{"title":42,"url":43},"McKinsey: The surprising economics of B2B growth (B2B Pulse 2026)","https:\u002F\u002Fwww.mckinsey.com\u002Fcapabilities\u002Fgrowth-marketing-and-sales\u002Four-insights\u002Fthe-surprising-economics-of-b2b-growth-the-new-survival-threshold-and-what-it-takes-to-thrive",{"title":45,"url":46},"Digital Commerce 360: Sana Commerce survey on B2B online ordering errors (11 Mar 2024)","https:\u002F\u002Fwww.digitalcommerce360.com\u002F2024\u002F03\u002F11\u002Fsana-commerce-survey-b2b-sellers-online-buyers-error-prone-order-processing",{"title":48,"url":49},"OWASP API Security Top 10 2023: API1 Broken Object Level Authorization","https:\u002F\u002Fowasp.org\u002FAPI-Security\u002Feditions\u002F2023\u002Fen\u002F0xa1-broken-object-level-authorization\u002F",{"title":51,"url":33},"RFC 9111: HTTP Caching",{"title":53,"url":54},"PortSwigger Web Security Academy: Web cache deception","https:\u002F\u002Fportswigger.net\u002Fweb-security\u002Fweb-cache-deception",{"title":56,"url":57},"Model Context Protocol: Authorization (revision 2026-07-28)","https:\u002F\u002Fmodelcontextprotocol.io\u002Fspecification\u002F2026-07-28\u002Fbasic\u002Fauthorization",{"title":59,"url":60},"Spryker: company user roles and permissions","https:\u002F\u002Fdocs.spryker.com\u002Fdocs\u002Fpbc\u002Fall\u002Fcustomer-relationship-management\u002Flatest\u002Fbase-shop\u002Fcompany-account-feature-overview\u002Fcompany-user-roles-and-permissions-overview",{"title":62,"url":63},"Fortune: Klarna brings humans back to customer service (9 May 2025)","https:\u002F\u002Ffortune.com\u002F2025\u002F05\u002F09\u002Fklarna-ai-humans-return-on-investment\u002F",{"title":65,"url":66},"Fin by Intercom: reporting metrics and resolution definitions","https:\u002F\u002Ffin.ai\u002Fhelp\u002Fen\u002Farticles\u002F13975807-reporting-metrics-attributes",{"title":68,"url":69},"Service-Public.fr: electronic invoicing reform, 1 September 2026","https:\u002F\u002Fentreprendre.service-public.gouv.fr\u002Factualites\u002FA18953","\u002Fimages\u002Fblog\u002Fb2b-customer-portal-ai\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fb2b-customer-portal-ai\u002Fog.jpg","b2b-ecommerce-developer",[74,75,76],"en","de","hu","AI a B2B ügyfélportálon: rendelések, számlák és újrarendelés","AI ágens egy B2B ügyfélportálon: élő rendelési, számla- és újrarendelési adatok, felhasználónkénti jogosultság, a gyorsítótár határa és őszinte mérőszámok.","Portálablak három csempével, az egyik fölött kis szövegbuborék.","AI a B2B ügyfélportálon · Balázs Csorba",[82,83,84,85,86],"A portálágens a vásárlás utáni kérdésekre az ERP és a rendeléskezelő élő adataiból, eszközökön keresztül válaszol, soha nem indexelt szövegből, mert a fiókadatok óránként változnak.","Az ágens a bejelentkezett felhasználó identitását és hatókörét örökli, és minden eszköz az adott objektumhoz való hozzáférést ellenőrzi; ezt a kontrollt az OWASP API1:2023 Broken Object Level Authorization néven tartja nyilván.","Az ügyfélspecifikus ár, készlet, rendelés és számla soha nem kerülhet megosztott gyorsítótárba; az RFC 9111 kifejezett engedély nélkül tiltja a hitelesített válaszok újrafelhasználását.","A Gartner szerint a szervizügyeknek csak 14%-a oldódik meg teljesen önkiszolgálással, ezért kérdéstípusonként tervezzen, és a vitás ügyek, jóváírások és szerződésmódosítások maradjanak embereknél.","A ContactBabel 2025-ös adatai szerint egy önkiszolgáló kapcsolat kevesebb mint 15 centbe kerül, egy telefonos pedig 7,16 dollárba, így a rendelési állapot és a számlakérdések az elsők, amelyeket érdemes automatizálni.",[88,91,94,97,100],{"q":89,"a":90},"Mit tud egy AI ágens egy B2B ügyfélportálon?","Élő fiókadatokból válaszol a vásárlás utáni kérdésekre: rendelési állapot és szállítási dátum, számlák és jóváírások, szerződéses és lehívási egyenlegek, készlet az ügyfél cikkeire, valamint újrarendelés a rendelési előzményekből. A vitás ügyek, jóváírási döntések, szerződésmódosítások és minden jogi kérdés emberhez kerül.",{"q":92,"a":93},"Hogyan akadályozható meg, hogy a portálágens más ügyfél adatait mutassa?","Az ágens a bejelentkezett felhasználó identitásával jár el, soha nem szolgáltatásfiókkal, és minden eszköz ellenőrzi, hogy ez a felhasználó láthatja-e az adott rendelést, számlát vagy szerződést, nem csak azt, hogy hívhatja-e a végpontot. Tesztelje saját, üzletági és vállalati hatókörű felhasználókkal.",{"q":95,"a":96},"Gyorsítótárazhat-e egy CDN oldalakat egy bejelentkezett B2B portálon?","Csak olyan tartalmat, amely minden ügyfélnek azonos, például katalógusoldalakat és dokumentációt. Az árakat, az ügyfélre szabott készletet, rendeléseket, számlákat és lehívási egyenlegeket private vagy no-store direktívával kell kiszolgálni, és a CDN-szabályok ezt nem írhatják felül, különben web cache deception révén kiszivároghatnak.",{"q":98,"a":99},"Milyen kiszűrési arányt érhet el egy B2B portálágens?","Nincs publikált B2B viszonyszám. A Gartner szerint összességében a szervizügyeknek csak 14%-a oldódik meg teljesen önkiszolgálással. Kérdéstípusonként mérjen, válassza külön a megerősített és a feltételezett megoldást, és kövesse a néhány napon belüli újbóli megkereséseket.",{"q":101,"a":102},"Megéri-e egy portálágens egy B2B nagykereskedőnek?","Megérheti, ha gyakoriak a rendelési állapotra és számlákra vonatkozó kérdések. A ContactBabel szerint egy önkiszolgáló munkamenet kevesebb mint 15 cent, egy telefonos kapcsolat 7,16 dollár, és egy Sana Commerce felmérésben a B2B vásárlók 79%-a szívesebben rendel újra online. Skálázás előtt ügyfelenként mérje a hasznot.",[104,107,110,113,116,119,122,125,128],{"id":105,"title":106},"what-the-portal-agent-owns","Miért felel egy portálágens?",{"id":108,"title":109},"account-data-comes-from-systems-not-from-text","Honnan vegye az ágens a fiókadatokat?",{"id":111,"title":112},"per-user-permissions-inside-a-buyer-account","Hogyan működnek a jogosultságok egy vevői fiókon belül?",{"id":114,"title":115},"caching-versus-per-customer-data","Mit szabad gyorsítótárazni egy B2B portálon?",{"id":117,"title":118},"what-deflects-and-what-needs-a-human","Mely kérdéseket zárhatja le az ágens, és melyekhez kell ember?",{"id":120,"title":121},"the-business-case","Mennyit ér egy portálágens?",{"id":123,"title":124},"when-not-to-build-it","Mikor ne építsen portálágenst?",{"id":126,"title":127},"checklist","Ellenőrzőlista egy portálágenshez",{"id":129,"title":130},"sources","Források",[132,141,150,153,156,164,167,168,171,177,184,187,188,195,202,205,220,223,224,235,293,311,313,314,321,382,396,403,404,407,432,435,436,439,442,443,461,469,470],{"type":133,"content":134},"paragraph",[135,136,140],"A ",{"tag":137,"children":138},"strong",[139],"B2B ügyfélportál"," az a hely, ahová a vevő a vásárlás után megy: megnézni a rendelés állapotát és a szállítási dátumot, letölteni a számlákat és jóváírásokat, látni, mennyi maradt egy szerződésből, és újrarendelni, amit legutóbb vett. Egy AI ágens a portálon természetes nyelven válaszol ezekre a kérdésekre, de csak eszközökkel lekért élő fiókadatokból, és csak azon belül, amit a bejelentkezett felhasználó láthat.",{"type":133,"content":142},[143,144,149],"Ez a cikk sorra veszi, miért felel a portálágens, miért kell a fiókadatoknak eszközökből és nem indexelt szövegből jönniük, a felhasználónkénti jogosultságokat egy többfelhasználós vevői fiókban, a gyorsítótár határát az ügyfélspecifikus adatoknál, mely kérdések szűrhetők ki és melyekhez kell ember, valamint az üzleti indoklást. A vásárlás előtti webshopos segítség más probléma, ezt a ",{"tag":145,"to":146,"children":147},"link","\u002Fblog\u002Fai-assistant-b2b-shop-customer-support",[148],"B2B webshopok AI ügyfélszolgálatáról"," szóló cikk tárgyalja.",{"type":151,"level":152,"id":105,"text":106},"heading",2,{"type":133,"content":154},[155],"A vásárlás utáni rutinkérdésekért felel: hol a rendelésem, mikor érkezik, miért tér el ez a számla a rendeléstől, lekönyvelték-e a jóváírást, mennyi maradt a lehívásból, rendeld újra a szokásos listát, és van-e raktáron. Egy rövid lista mindig emberhez kerül: vitás ügyek, szerződésmódosítások, jóváírási és méltányossági döntések, és minden, aminek jogi súlya van.",{"type":133,"content":157},[158,159,163],"A vevők pontosan ezt kérik. A Sana Commerce 1000 B2B vásárlót megkérdező felmérésében 37% a rendelési állapotot, az előzményeket és a nyitott számlákat szerette volna látni a webshopban, 40% pedig pontos készletet, árakat és szállítási dátumot (",{"tag":160,"href":46,"children":161},"a",[162],"Digital Commerce 360, 2024. március","; szállítói felmérés).",{"type":133,"content":165},[166],"Az újrarendelés különös figyelmet érdemel, mert ez a bevételhez legközelebb álló művelet. Az ágens a rendelési előzményekből kosarat állít össze, minden tételt összevet az aktuális elérhetőséggel, a kifutott cikkek utódjaival és az ügyfél aktuális árával, és megmutatja, mi változott a legutóbbi rendelés óta. A kosarat a felhasználó erősíti meg; az ágens soha nem rendel magától. Ugyanez a folyamat működik ismétlődő listákra is, például egy telephelyvezető havi fogyóanyag-rendelésére.",{"type":151,"level":152,"id":108,"text":109},{"type":133,"content":169},[170],"A nyilvántartó rendszerekből, eszközökön keresztül, a kérdés pillanatában. A rendeléseket, szállításokat, számlákat és jóváírásokat az ERP vagy a rendeléskezelő rendszer kezeli; a portál egy olvasóréteg API-val és szinkronizálási késéssel. Ha a fiókdokumentumokat vektortárba indexeljük és „dokumentumokból válaszolunk”, az itt kudarcot vall, mert a fontos válasz, a mai állapot, az indexelés után megváltozik.",{"type":172,"src":173,"alt":174,"wide":175,"caption":176},"image","\u002Fimages\u002Fblog\u002Fb2b-customer-portal-ai\u002Fdiagram-8.webp","A portálágens kérésútja jogosultsági kapukkal Balról jobbra: egy szerepkörrel és üzletággal rendelkező vevői felhasználó bejelentkezik a portál backendjébe, amely a munkamenetet és a szerepkört tartja. Az ágens ennek a felhasználónak a nevében jár el, és szűkített hatókörű eszközöket hív, amelyek az ERP-ből és a rendeléskezelőből, a számlákból és a készletből olvasnak. Az eszközök alatt minden hívásnál objektumszintű ellenőrzés fut; az ágens alatt emberi átadás veszi át a vitás és jóváírási kérdéseket. A felhasználó identitása minden hívással együtt utazik, szolgáltatásfiók nincs.",true,"A portálágens kérésútja: az identitás a bejelentkezett felhasználótól az ágensen át minden eszközhívásba eljut, minden hívás az adott objektumhoz való hozzáférést ellenőrzi, a vitás és jóváírási kérdések pedig emberhez kerülnek.",{"type":133,"content":178},[179,180,183],"A számla- és jóváírási kérdések mutatják meg, miért. A jóváírás egy lánc vége az ERP-ben: visszárurendelés, RMA, rendelkezés, jóváírás; a kereskedelmi partnerek között pedig ugyanezek a tények EDI-üzenetekként utaznak, például X12 810 számlaként és 812 jóváírási és terhelési módosításként. Az ágens úgy magyaráz el egy számlát, hogy ezeket a rekordokat olvassa és a PDF-re hivatkozik, nem úgy, hogy átfogalmazza. Ez egyre fontosabb, ahogy a számlák strukturált adattá válnak: Franciaországban 2026. szeptember 1-jétől minden áfaalany vállalkozásnak tudnia kell e-számlát fogadni egy jóváhagyott platformon, a nagy- és középvállalatoknak pedig ugyanettől a naptól ki is kell állítaniuk (",{"tag":160,"href":69,"children":181},[182],"Service-Public.fr",").",{"type":133,"content":185},[186],"Legyen őszinte a frissességgel kapcsolatban. Minden válasz, amely szinkronizált értéken alapul, mondja meg, mikor és melyik rendszerből olvasta, például „állapot az ERP-ből, 10:42”. Ha a portál egy percekkel lemaradó replikából olvas, az ágens ezt mondja ki, ahelyett hogy élő értékként mutatná. Az ügyfelek sokkal könnyebben elnézik a jelzett késést, mint egy szállítási dátumot, amelyről kiderül, hogy tegnapi.",{"type":151,"level":152,"id":111,"text":112},{"type":133,"content":189},[190,191,194],"Egy B2B fióknak sok felhasználója van eltérő hatókörrel, és az ágensnek pontosan egy felhasználó hatókörét kell örökölnie. A Spryker vállalati fiókmodellje jó példa: üzletágak, szerepkörök és háromszintű rendelési láthatóság, saját rendelések, az üzletág rendelései vagy a vállalat rendelései (",{"tag":160,"href":60,"children":192},[193],"Spryker dokumentáció","). Más platformok részletekben eltérnek, de a szerkezet gyakori.",{"type":133,"content":196},[197,198,201],"A sebezhető pont az objektumhoz való hozzáférés, nem a végponthoz. Az OWASP a 2023-as API Top 10 listáján első helyre teszi a Broken Object Level Authorization hibát, és rögzíti, hogy a munkamenet felhasználójának összevetése az URL-ben szereplő azonosítóval nem elég; minden végpontnak, amely objektumazonosítót kap, ellenőriznie kell, hogy ez a felhasználó hozzáférhet-e az adott objektumhoz (",{"tag":160,"href":49,"children":199},[200],"OWASP API1:2023","). Egy ágens ezt súlyosbítja, mert készségesen kipróbál olyan azonosítókat, amelyeket egy bemásolt levélben látott. Az ellenőrzést minden eszközbe tegye bele:",{"type":203,"code":204},"code","\u002F\u002F Object-level check inside the tool (sketch): endpoint access is not object access\nasync function getInvoice(user: PortalUser, invoiceNo: string) {\n  const invoice = await erp.invoices.get(invoiceNo, { onBehalfOf: user.id })\n  if (!invoice) return { ok: false, error: 'NOT_FOUND' }\n\n  const allowed =\n    (user.scope === 'own' && invoice.orderedBy === user.id) ||\n    (user.scope === 'business-unit' && invoice.businessUnit === user.businessUnit) ||\n    (user.scope === 'company' && invoice.companyId === user.companyId)\n\n  \u002F\u002F same answer for \"missing\" and \"not yours\", so ids cannot be probed\n  if (!allowed) return { ok: false, error: 'NOT_FOUND' }\n  return { ok: true, invoice: pick(invoice, ['number', 'date', 'total', 'currency', 'status', 'pdfUrl']) }\n}",{"type":133,"content":206},[207,208,211,212,215,216,149],"Az ágens soha nem fut minden ügyfél fölött jogokkal rendelkező szolgáltatásfiókként. Ha az eszközök MCP-n keresztül érhetők el, a jelenlegi engedélyezési specifikáció, a 2026-07-28-as revízió írja le a mintát: OAuth 2.1, erőforrás-jelölők, hogy egy token egyetlen szerverhez kötődjön, minimális hatókörök lépcsőzetes emeléssel ",{"tag":203,"children":209},[210],"insufficient_scope"," esetén, és kifejezett védelem a confused deputy támadások ellen (",{"tag":160,"href":57,"children":213},[214],"MCP","). Ugyanennek a szabálynak a lekérési oldali változatát a ",{"tag":145,"to":217,"children":218},"\u002Fblog\u002Frag-access-control-permissions",[219],"RAG hozzáférés-szabályozásáról",{"type":133,"content":221},[222],"A vevői fiókok jóváhagyási szabályokat is hordoznak: felhasználónkénti rendelési keretet, költséghelyeket, és olyan limit feletti rendeléseket, amelyekhez a vevő cégén belül egy második személy kell. Az ágensnek ezeket a szabályokat pontosan úgy kell betartania, mint a webshopnak, vagyis ugyanazokat a pénztár- és jóváhagyási szolgáltatásokat kell hívnia, nem újraírnia. Az az újrarendelés, amely kihagyja a vevő saját jóváhagyási lépését, hibás, még ha minden ár és mennyiség helyes is.",{"type":151,"level":152,"id":114,"text":115},{"type":133,"content":225},[226,227,230,231,234],"Csak azt, ami minden ügyfélnek azonos. Az RFC 9111 kimondja, hogy egy megosztott gyorsítótár nem használhatja újra az Authorization fejléccel érkezett kérésre adott választ, hacsak egy válaszdirektíva ezt kifejezetten nem engedi, és a ",{"tag":203,"children":228},[229],"private"," direktívát az egy felhasználónak szánt válaszokra határozza meg (",{"tag":160,"href":33,"children":232},[233],"RFC 9111","). Egy portálon az ár, az ügyfél készlete, a rendelések, számlák és lehívási egyenlegek eleve ügyfélspecifikusak.",{"type":236,"head":237,"rows":246},"table",[238,240,242,244],[239],"Adat",[241],"Megosztott cache?",[243],"Cache-kulcs",[245],"Érvénytelenítés",[247,256,265,273,279,287],[248,250,252,254],[249],"Katalógus, tartalom",[251],"igen",[253],"URL, nyelv",[255],"PIM- vagy CMS-változás",[257,259,261,263],[258],"Ügyfélárak",[260],"nem",[262],"csak privát: ügyfél, árlista",[264],"szerződés- vagy árlista-változás",[266,268,269,271],[267],"Készlet az ügyfélnek",[260],[270],"nincs, élő olvasás",[272],"—",[274,276,277,278],[275],"Rendelési állapot",[260],[270],[272],[280,282,283,285],[281],"Számlák, jóváírások",[260],[284],"csak privát: felhasználói hatókör",[286],"új bizonylat esemény",[288,290,291,292],[289],"Lehívási egyenlegek",[260],[270],[272],{"type":133,"content":294},[295,296,299,300,302,303,306,307,310],"A fejlécek önmagukban nem elegendők. A web cache deception úgy veszi rá a gyorsítótárat privát dinamikus válaszok tárolására, hogy kihasználja a gyorsítótár és a forrásszerver útvonal-értelmezése közötti különbségeket; a PortSwigger javaslata, hogy a dinamikus válaszok ",{"tag":203,"children":297},[298],"no-store"," vagy ",{"tag":203,"children":301},[229]," jelölést kapjanak, és a CDN-szabályok ne írják felül a ",{"tag":203,"children":304},[305],"Cache-Control"," fejlécet (",{"tag":160,"href":54,"children":308},[309],"PortSwigger","). Egy Nuxt frontendben a route rules teszi kifejezetté a szétválasztást:",{"type":203,"code":312},"\u002F\u002F nuxt.config.ts (sketch): shareable catalog vs never-shared account data\nexport default defineNuxtConfig({\n  routeRules: {\n    '\u002Fcatalog\u002F**': { swr: 600 },                                         \u002F\u002F same for every customer\n    '\u002Faccount\u002F**': { headers: { 'cache-control': 'private, no-store' } },  \u002F\u002F orders, invoices, prices\n    '\u002Fapi\u002Faccount\u002F**': { headers: { 'cache-control': 'private, no-store' } },\n  },\n})",{"type":151,"level":152,"id":117,"text":118},{"type":133,"content":315},[316,317,320],"Kérdéstípusonként döntsön, ne a portál egészére. A Gartner 5728 ügyfelet megkérdező felmérése szerint a szervizügyeknek csak 14%-a oldódik meg teljesen önkiszolgálással, és még a nagyon egyszerű ügyeknek is csak 36%-a; a kudarcok 43%-a abból fakadt, hogy az ügyfél nem találta a releváns tartalmat (",{"tag":160,"href":37,"children":318},[319],"Gartner, 2024. aug.","). Egy élő eszközökkel dolgozó ágens a „nem találtam” részt meg tudja oldani; a többi embernél marad.",{"type":236,"head":322,"rows":331},[323,325,327,329],[324],"Kérdéstípus",[326],"Gazdarendszer",[328],"Ágens módja",[330],"Kapcsolódó mérőszám",[332,341,350,356,365,373],[333,335,337,339],[334],"Rendelési állapot, szállítási dátum",[336],"ERP, OMS",[338],"eszközhívás",[340],"megkeresés rendelésenként",[342,344,346,348],[343],"Számla, jóváírás",[345],"ERP",[347],"eszközhívás PDF-linkkel",[349],"megoldás típusonként",[351,353,354,355],[352],"Szerződés, lehívási egyenleg",[345],[338],[349],[357,359,361,363],[358],"Újrarendelés előzményből",[360],"webshop, ERP",[362],"eszköz, a felhasználó erősíti meg a kosarat",[364],"újrarendelési arány",[366,368,370,371],[367],"Készletlekérdezés",[369],"ERP, ATP",[338],[372],"portálhasználat",[374,376,378,380],[375],"Vita, jóváírási kérés",[377],"emberek, CRM",[379],"csak ember, összefoglalóval",[381],"emberhez jutás ideje",{"type":383,"variant":384,"title":385,"body":386},"callout","warn","A kiszűrés nem megoldás",[387],[388,389,392,393,183],"A kiszűrés az elkerült megkereséseket számolja, a megoldás a megoldott problémákat. A szállítói mérőszámok gyakran a feltételezett megoldást is beszámítják: az Intercom Fin megoldottnak tekint egy beszélgetést, ha az ügyfél megerősítette, vagy nem kért embert és nem válaszolt negatívan (",{"tag":160,"href":66,"children":390},[391],"Fin súgóközpont","). A megerősített és a feltételezett megoldást külön jelentse, és számolja a néhány napon belüli újbóli megkereséseket. A Klarna asszisztense 2024-ben az első hónapban a chatek kétharmadát kezelte, 2025 májusára pedig a cég újra embereket vett fel, és hangsúlyozta, hogy az ügyfeleknek mindig el kell érniük egy embert (",{"tag":160,"href":63,"children":394},[395],"Fortune",{"type":133,"content":397},[398,399,402],"Ha egy kérdés emberhez kerül, az átadás vigye magával a már elvégzett munkát: a felhasználót, a fiókot, az ágens által lekérdezett objektumokat és azt, amit talált, hogy az ügyfélnek ne kelljen mindent megismételnie. A ContactBabel szerint a cégek 52%-a mondja, hogy az ügyfelek azért telefonálnak, mert egyáltalán nem találták az önkiszolgáló funkciót (",{"tag":160,"href":40,"children":400},[401],"ContactBabel","); a jól látható, jól előkészített átadás az önkiszolgálás tervezésének része, nem a kudarc beismerése.",{"type":151,"level":152,"id":120,"text":121},{"type":133,"content":405},[406],"Annyit ér, amennyivel csökkenti a megkeresésenkénti költséget a gyakori, egyszerű kérdéseknél, és amennyivel gyorsabbá és hibátlanná teszi az újrarendelést. B2B portálágensekre nincs publikált, auditált hatás, ezért az indoklás a megkeresésenkénti költségre, a vásárlói preferenciákra és az ügyfelenkénti mérésre épül.",{"type":408,"ordered":409,"items":410},"list",false,[411,419,424],[412,415,416,418],{"tag":137,"children":413},[414],"Megkeresésenkénti költség:"," a ContactBabel 2025 decemberében frissített önkiszolgálási útmutatója szerint egy tipikus webes önkiszolgáló munkamenet kevesebb mint 10 penny vagy 15 cent, egy telefonos kapcsolat pedig 6,25 font vagy 7,16 dollár (",{"tag":160,"href":40,"children":417},[401],"). Ezek brit és amerikai ügyfélszolgálati átlagok, nem B2B-specifikusak.",[420,423],{"tag":137,"children":421},[422],"Újrarendelés:"," a Sana Commerce felmérésében a B2B vásárlók 79%-a szívesebben rendel újra online, ugyanakkor az online rendelések 33%-ánál hibáról számolnak be, 68%-ukat elriasztják az ilyen hibák, és 74% beszállítót váltana egy jobb webshopért (szállítói felmérés, 2024. március).",[425,428,429,183],{"tag":137,"children":426},[427],"Digitális arány:"," a McKinsey 2026-os B2B Pulse felmérése szerint a B2B cégek 71%-a már online is értékesít, és a bevétel nagyjából harmada digitális csatornákon folyik (",{"tag":160,"href":43,"children":430},[431],"McKinsey, 2026. május",{"type":133,"content":433},[434],"Egy e-kereskedelmi vagy ügyfélszolgálati vezető számára az ügyfelenként mérendő négy szám: kiszűrés kérdéstípusonként, újrarendelési arány az előzményekből, portálhasználat és megkeresés rendelésenként. Ezt a réteget, a jogosultságokat, a gyorsítótárazást és a Nuxt frontendet B2B kereskedelmi rendszereken, például Spryker és Pimcore alapon építem, és a saját Nuxt oldalamon is futtatok LLM-funkciókat; ugyanazok a határok érvényesek mindkét léptékben.",{"type":151,"level":152,"id":123,"text":124},{"type":133,"content":437},[438],"Ne építsen ilyet, ha az ERP-adatok megbízhatatlanok, ha a számlák csak szkennelt formában léteznek strukturált forrás nélkül, ha senki nem felel egy betartatható és tesztelhető jogosultsági mátrixért, vagy ha nincs audit napló. Kevés rendelésnél egy jó kereső és egy jól látható telefonszám többet ér egy ágensnél. És kerülje a kiszűrési színjátékot: ha a fő mérőszám a feltételezett megoldást is számolja, jobbnak fog látszani a valóságnál.",{"type":133,"content":440},[441],"A több jogi egységet és nyelvet kiszolgáló portálok még egy feltételt hoznak: minden nyelvnek és jogi egységnek kell egy felelős, aki ellenőrzi, mit mond az ágens az adott piacon a számlákról, adókról és szállítási feltételekről. Nyelvenkénti felelősök nélkül várjon.",{"type":151,"level":152,"id":126,"text":127},{"type":408,"ordered":175,"items":444},[445,447,449,451,453,455,457,459],[446],"Írja meg kódként a jogosultsági mátrixot, és tesztelje saját, üzletági és vállalati hatókörű felhasználókkal.",[448],"Minden eszközben ellenőrizze az objektumszintű hozzáférést, és hiányzó és tiltott objektumra ugyanazt a hibát adja vissza.",[450],"Tesztelje a gyorsítótár-fejléceket minden hitelesített útvonalon, a CDN-szabályokkal együtt; én ezeket Playwright MCP-vel futtatom.",[452],"Az azonosítókat, például rendelés- és számlaszámokat szó szerint az eszközökből adja vissza, soha ne a modellből.",[454],"Minden bizonylatra vonatkozó válaszban linkelje a valódi számla- vagy jóváírás-PDF-et.",[456],"Kérdéstípusonként rögzítse a továbbítást, és az emberi elérhetőség minden képernyőn legyen látható.",[458],"Indulás előtt írja le a mérőszámok definícióit, a megerősített és a feltételezett megoldást külön.",[460],"Vezessen audit nyomvonalat minden eszközhívásról a felhasználóval, az objektummal és az eredménnyel.",{"type":133,"content":462},[463,464,468],"Egyetlen kérdéstípusra, rendelési állapotra vagy számlákra szűkített pilot, előre rögzített kilépési feltétellel, az őszinte kezdés. Ha segítség kell a jogosultsági modellhez, a gyorsítótár határához vagy az eszközréteghez, nézze meg a ",{"tag":145,"to":465,"children":466},"\u002Fexpertise\u002Fb2b-ecommerce-developer",[467],"B2B e-kereskedelmi munkámat",".",{"type":151,"level":152,"id":129,"text":130},{"type":408,"ordered":175,"items":471},[472,475,478,481,484,487,490,493,496,499,502,505],[473],{"tag":160,"href":37,"children":474},[36],[476],{"tag":160,"href":40,"children":477},[39],[479],{"tag":160,"href":43,"children":480},[42],[482],{"tag":160,"href":46,"children":483},[45],[485],{"tag":160,"href":49,"children":486},[48],[488],{"tag":160,"href":33,"children":489},[51],[491],{"tag":160,"href":54,"children":492},[53],[494],{"tag":160,"href":57,"children":495},[56],[497],{"tag":160,"href":60,"children":498},[59],[500],{"tag":160,"href":63,"children":501},[62],[503],{"tag":160,"href":66,"children":504},[65],[506],{"tag":160,"href":69,"children":507},[68],[509,583,639,713],{"slug":510,"published":511,"minutes":512,"category":7,"tags":513,"keywords":519,"about":531,"sources":540,"cover":577,"og":578,"expertise":72,"locales":579,"lang":76,"title":580,"description":581,"coverAlt":582},"schema-org-structured-data-b2b-shop","2026-10-17",10,[514,515,516,517,518],"Schema.org","Structured data","B2B e-commerce","Technical SEO","Nuxt",[520,521,522,523,524,525,526,527,528,529,530],"schema.org b2b shop","product structured data b2b","merchant listing structured data","product snippet vs merchant listing","unitpricespecification referencequantity","productgroup variants structured data","organization schema vatid","b2b prices behind login seo","json-ld nuxt schema org","merchant return policy structured data","mpn gtin structured data",[532,534,537],{"name":514,"url":533},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSchema.org",{"name":535,"url":536},"JSON-LD","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FJSON-LD",{"name":538,"url":539},"Business-to-business","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FBusiness-to-business",[541,544,547,550,553,556,559,562,565,568,571,574],{"title":542,"url":543},"Google Search Central: Introduction to Product structured data","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Fproduct",{"title":545,"url":546},"Google Search Central: Merchant listing (Product, Offer) structured data","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Fmerchant-listing",{"title":548,"url":549},"Google Search Central: Product snippet structured data","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Fproduct-snippet",{"title":551,"url":552},"Google Search Central: Product variant structured data","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Fproduct-variants",{"title":554,"url":555},"Google Search Central: Organization structured data","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Forganization",{"title":557,"url":558},"Google Search Central: Merchant return policy structured data","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Freturn-policy",{"title":560,"url":561},"Google Search Central: General structured data guidelines","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Fsd-policies",{"title":563,"url":564},"Google Search Central: Generate structured data with JavaScript","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Fgenerate-structured-data-with-javascript",{"title":566,"url":567},"Schema.org: Offer","https:\u002F\u002Fschema.org\u002FOffer",{"title":569,"url":570},"Schema.org: UnitPriceSpecification","https:\u002F\u002Fschema.org\u002FUnitPriceSpecification",{"title":572,"url":573},"Unhead: Product schema (defineProduct)","https:\u002F\u002Funhead.unjs.io\u002Fdocs\u002Fschema-org\u002Fapi\u002Fschema\u002Fproduct",{"title":575,"url":576},"Nuxt SEO: Schema.org identity setup","https:\u002F\u002Fnuxtseo.com\u002Fdocs\u002Fschema-org\u002Fguides\u002Fsetup-identity","\u002Fimages\u002Fblog\u002Fschema-org-structured-data-b2b-shop\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fschema-org-structured-data-b2b-shop\u002Fog.jpg",[74,75,76],"Schema.org strukturált adatok B2B webshopokhoz: bejelentkezés mögötti árak, egységek és változatok","Termék-markup B2B shopokhoz: snippet vagy kereskedői lista, melyik ár, cikkszámok, egységárak, változatok, Organization és SSR Nuxtban.","Terméktéglalap vékony kerettel, alsó kis mezőjét alacsony fal takarja el.",{"slug":584,"published":511,"minutes":585,"category":7,"tags":586,"keywords":591,"about":603,"sources":611,"cover":633,"og":634,"expertise":72,"locales":635,"lang":76,"title":636,"description":637,"coverAlt":638},"ai-assistant-b2b-shop-customer-support",9,[516,587,588,589,590],"AI assistant","Customer support","LLM agents","EU AI Act",[592,593,594,595,596,597,598,599,600,601,602],"ai assistant b2b shop","ai customer support b2b ecommerce","llm chatbot order status","ai agent customer service tools","chatbot liability air canada","klarna ai assistant results","human handoff chatbot design","eu ai act chatbot disclosure","owasp excessive agency","ai support resolution rate","b2b customer portal chatbot",[604,607,610],{"name":605,"url":606},"Customer service","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCustomer_service",{"name":608,"url":609},"Chatbot","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FChatbot",{"name":538,"url":539},[612,615,618,621,624,627,630],{"title":613,"url":614},"Klarna: AI assistant handles two-thirds of customer service chats in its first month (press release, 2024)","https:\u002F\u002Fwww.klarna.com\u002Finternational\u002Fpress\u002Fklarna-ai-assistant-handles-two-thirds-of-customer-service-chats-in-its-first-month\u002F",{"title":616,"url":617},"Entrepreneur: Klarna is hiring customer service agents again, according to its CEO (May 2025)","https:\u002F\u002Fwww.entrepreneur.com\u002Fbusiness-news\u002Fklarna-ceo-reverses-course-by-hiring-more-humans-not-ai\u002F491396",{"title":619,"url":620},"ABA Business Law Today: BC tribunal confirms companies remain liable for information provided by AI chatbot","https:\u002F\u002Fwww.americanbar.org\u002Fgroups\u002Fbusiness_law\u002Fresources\u002Fbusiness-law-today\u002F2024-february\u002Fbc-tribunal-confirms-companies-remain-liable-information-provided-ai-chatbot\u002F",{"title":622,"url":623},"OWASP GenAI Security Project: LLM06:2025 Excessive Agency","https:\u002F\u002Fgenai.owasp.org\u002Fllmrisk\u002Fllm062025-excessive-agency\u002F",{"title":625,"url":626},"OWASP GenAI Security Project: LLM05:2025 Improper Output Handling","https:\u002F\u002Fgenai.owasp.org\u002Fllmrisk\u002Fllm052025-improper-output-handling\u002F",{"title":628,"url":629},"EU AI Act, Article 50: Transparency obligations","https:\u002F\u002Fartificialintelligenceact.eu\u002Farticle\u002F50\u002F",{"title":631,"url":632},"Intercom: Fin pricing and billable outcomes","https:\u002F\u002Ffin.ai\u002Fpricing","\u002Fimages\u002Fblog\u002Fai-assistant-b2b-shop-customer-support\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fai-assistant-b2b-shop-customer-support\u002Fog.jpg",[74,75,76],"AI-asszisztens a B2B webshop ügyfélszolgálatához: eszközök, jogosultságok és átadás embernek","Hogyan építs AI ügyfélszolgálati asszisztenst B2B shophoz: mit automatizálj, eszközök ügyfélkontextusban, átadás embernek, AI Act és mérőszámok.","Magas fal keskeny réssel: nyíl halad át rajta a három négyzetből álló bekerített mezőbe, egy másik lefelé, egy tálca felé mutat.",{"slug":640,"published":511,"minutes":641,"category":7,"tags":642,"keywords":647,"about":659,"sources":669,"cover":706,"og":707,"expertise":708,"locales":709,"lang":76,"title":710,"description":711,"coverAlt":712},"vue-ai-chat-ui-streaming-accessibility",11,[643,518,644,645,646],"Vue","Accessibility","Streaming","AI chat",[648,649,650,651,652,653,654,655,656,657,658],"vue ai chat ui","nuxt llm streaming","sse vs fetch streaming","aria-live streaming text","accessible chat interface","abort fetch stream vue","dompurify markdown llm","role log chat","reduced motion chat ui","wcag 2.2 chat","screen reader streaming",[660,663,666],{"name":661,"url":662},"Web accessibility","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FWeb_accessibility",{"name":664,"url":665},"Server-sent events","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FServer-sent_events",{"name":667,"url":668},"Vue.js","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FVue.js",[670,673,676,679,682,685,688,691,694,697,700,703],{"title":671,"url":672},"MDN: Using server-sent events","https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FServer-sent_events\u002FUsing_server-sent_events",{"title":674,"url":675},"MDN: AbortController","https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FAbortController",{"title":677,"url":678},"MDN: ReadableStream","https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FReadableStream",{"title":680,"url":681},"MDN: TextDecoderStream","https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FTextDecoderStream",{"title":683,"url":684},"MDN: ARIA log role","https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAccessibility\u002FARIA\u002FReference\u002FRoles\u002Flog_role",{"title":686,"url":687},"W3C: Understanding SC 4.1.3 Status Messages","https:\u002F\u002Fwww.w3.org\u002FWAI\u002FWCAG22\u002FUnderstanding\u002Fstatus-messages.html",{"title":689,"url":690},"W3C WAI: What's new in WCAG 2.2","https:\u002F\u002Fwww.w3.org\u002FWAI\u002Fstandards-guidelines\u002Fwcag\u002Fnew-in-22\u002F",{"title":692,"url":693},"MDN: prefers-reduced-motion","https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FCSS\u002F@media\u002Fprefers-reduced-motion",{"title":695,"url":696},"DOMPurify README","https:\u002F\u002Fgithub.com\u002Fcure53\u002FDOMPurify",{"title":698,"url":699},"markdown-it README","https:\u002F\u002Fgithub.com\u002Fmarkdown-it\u002Fmarkdown-it",{"title":701,"url":702},"AI SDK docs: useChat","https:\u002F\u002Fai-sdk.dev\u002Fdocs\u002Fai-sdk-ui\u002Fchatbot",{"title":704,"url":705},"Vue docs: nextTick","https:\u002F\u002Fvuejs.org\u002Fapi\u002Fgeneral.html#nexttick","\u002Fimages\u002Fblog\u002Fvue-ai-chat-ui-streaming-accessibility\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fvue-ai-chat-ui-streaming-accessibility\u002Fog.jpg","vue-nuxt-developer",[74,75,76],"AI-csevegő UI Vue-ban és Nuxtban: akadálymentes streaming","AI-csevegő Vue-ban vagy Nuxtban: fetch-stream, megszakítás és újrapróbálás, biztonságos markdown, aria-live bejelentések, billentyűzet és reduced motion.","Üzenetkártya villogó kurzorral, pontozott vonal hullámokká nyílik, mellette pipa.",{"slug":714,"published":511,"minutes":585,"category":7,"tags":715,"keywords":720,"about":732,"sources":742,"cover":775,"og":776,"expertise":708,"locales":777,"lang":76,"title":778,"description":779,"coverAlt":780},"llm-translation-pipeline-i18n",[716,717,718,643,719],"Translation","i18n","LLM","Localization",[721,722,723,724,725,726,727,728,729,730,731],"llm translation pipeline","icu messageformat placeholders","vue i18n llm translation","translation memory llm","glossary enforcement translation","german informal sie du","hungarian translation quality llm","structured output json translation","machine translation post-editing","locale file validation","cldr plural categories",[733,736,739],{"name":734,"url":735},"Internationalization and localization","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FInternationalization_and_localization",{"name":737,"url":738},"ICU MessageFormat","https:\u002F\u002Funicode-org.github.io\u002Ficu\u002Fuserguide\u002Fformat_parse\u002Fmessages\u002F",{"name":740,"url":741},"Vue I18n","https:\u002F\u002Fvue-i18n.intlify.dev\u002F",[743,745,748,751,754,757,760,763,766,769,772],{"title":744,"url":738},"Unicode ICU User Guide: Formatting Messages",{"title":746,"url":747},"Vue I18n: Message Format Syntax","https:\u002F\u002Fvue-i18n.intlify.dev\u002Fguide\u002Fessentials\u002Fsyntax",{"title":749,"url":750},"Nuxt i18n: Getting started","https:\u002F\u002Fi18n.nuxtjs.org\u002Fdocs\u002Fgetting-started",{"title":752,"url":753},"Unicode CLDR: Plural rules","https:\u002F\u002Fcldr.unicode.org\u002Findex\u002Fcldr-spec\u002Fplural-rules",{"title":755,"url":756},"OpenAI: Structured outputs","https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fguides\u002Fstructured-outputs",{"title":758,"url":759},"DeepL API: Glossaries","https:\u002F\u002Fdevelopers.deepl.com\u002Fdocs\u002Fapi-reference\u002Fglossaries",{"title":761,"url":762},"W3C: Localization vs. internationalization","https:\u002F\u002Fwww.w3.org\u002FInternational\u002Fquestions\u002Fqa-i18n",{"title":764,"url":765},"GNU gettext manual","https:\u002F\u002Fwww.gnu.org\u002Fsoftware\u002Fgettext\u002Fmanual\u002Fgettext.html",{"title":767,"url":768},"RFC 5646: Tags for Identifying Languages","https:\u002F\u002Fwww.rfc-editor.org\u002Frfc\u002Frfc5646",{"title":770,"url":771},"Rat für deutsche Rechtschreibung","https:\u002F\u002Fwww.rechtschreibrat.com\u002F",{"title":773,"url":774},"Microsoft Writing Style Guide","https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fstyle-guide\u002Fwelcome\u002F","\u002Fimages\u002Fblog\u002Fllm-translation-pipeline-i18n\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fllm-translation-pipeline-i18n\u002Fog.jpg",[74,75,76],"LLM-fordítási pipeline i18n-hez: glosszárium, helyőrzők és review","Termék- és weboldalszövegek fordítása LLM-mel úgy, hogy a helyőrzők, a többes szám és a hangnem épen maradjon: glosszárium, ICU üzenetek, QA-ellenőrzések.","Három forráskártya, egy lefordított kártya glosszárium-szalaggal, majd ellenőrzött tábla.",1792337025348]