[{"data":1,"prerenderedAt":781},["ShallowReactive",2],{"blog-b2b-customer-portal-ai-de":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":75,"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","KI im B2B-Kundenportal: Aufträge, Rechnungen und Nachbestellungen","Ein KI-Agent im B2B-Kundenportal: Live-Daten zu Aufträgen, Rechnungen und Nachbestellungen, Rechte pro Nutzer, die Cache-Grenze und ehrliche Kennzahlen.","Ein Portalfenster mit drei Kacheln und einer kleinen Sprechblase über einer davon.","KI im B2B-Kundenportal · Balázs Csorba",[82,83,84,85,86],"Ein Portal-Agent beantwortet Fragen nach dem Kauf über Werkzeuge aus Live-Daten von ERP und Auftragssystem, nie aus indiziertem Text, denn Kontodaten ändern sich stündlich.","Der Agent übernimmt Identität und Bereich des angemeldeten Nutzers, und jedes Werkzeug prüft den Zugriff auf das konkrete Objekt, die Kontrolle, die OWASP als API1:2023 Broken Object Level Authorization führt.","Kundenspezifische Preise, Bestände, Aufträge und Rechnungen dürfen nie in einem geteilten Cache landen; RFC 9111 verbietet die Wiederverwendung authentifizierter Antworten ohne ausdrückliche Erlaubnis.","Gartner fand, dass nur 14 % der Serviceanliegen vollständig per Self-Service gelöst werden; planen Sie daher je Fragetyp und lassen Sie Streitfälle, Gutschriften und Vertragsänderungen bei Menschen.","Laut ContactBabel-Daten 2025 kostet ein Self-Service-Kontakt unter 15 Cent gegenüber 7,16 US-Dollar für ein Telefonat; Auftragsstatus und Rechnungsfragen sind deshalb die ersten Kandidaten für Automatisierung.",[88,91,94,97,100],{"q":89,"a":90},"Was kann ein KI-Agent in einem B2B-Kundenportal leisten?","Er beantwortet Fragen nach dem Kauf aus Live-Kontodaten: Auftragsstatus und Liefertermine, Rechnungen und Gutschriften, Vertrags- und Abrufmengen, Bestand für die Artikel des Kunden und Nachbestellungen aus der Auftragshistorie. Streitfälle, Gutschriftsentscheidungen, Vertragsänderungen und alles Rechtliche gehen an einen Menschen.",{"q":92,"a":93},"Wie verhindert man, dass ein Portal-Agent Daten eines anderen Kunden zeigt?","Der Agent handelt mit der Identität des angemeldeten Nutzers, nie mit einem Servicekonto, und jedes Werkzeug prüft, ob dieser Nutzer den konkreten Auftrag, die Rechnung oder den Vertrag sehen darf, nicht nur, ob er den Endpunkt aufrufen darf. Testen Sie das mit Nutzern auf Ebene eigene Daten, Geschäftsbereich und Unternehmen.",{"q":95,"a":96},"Darf ein CDN Seiten in einem angemeldeten B2B-Portal cachen?","Nur Inhalte, die für alle Kunden gleich sind, etwa Katalogseiten und Dokumentation. Preise, kundenspezifischer Bestand, Aufträge, Rechnungen und Abrufmengen müssen mit private oder no-store ausgeliefert werden, und CDN-Regeln dürfen das nicht überschreiben, sonst kann Web Cache Deception sie offenlegen.",{"q":98,"a":99},"Welche Abfangquote erreicht ein Portal-Agent im B2B?","Einen veröffentlichten B2B-Vergleichswert gibt es nicht. Gartner berichtet, dass insgesamt nur 14 % der Serviceanliegen vollständig per Self-Service gelöst werden. Messen Sie je Fragetyp, trennen Sie bestätigte von angenommener Lösung und verfolgen Sie erneute Kontakte innerhalb weniger Tage.",{"q":101,"a":102},"Lohnt sich ein Portal-Agent für einen B2B-Großhändler?","Er kann sich lohnen, wenn Fragen zu Auftragsstatus und Rechnungen häufig sind. ContactBabel beziffert Self-Service auf unter 15 Cent pro Sitzung gegenüber 7,16 US-Dollar pro Telefonat, und 79 % der B2B-Einkäufer in einer Umfrage von Sana Commerce bestellen lieber online nach. Messen Sie den Nutzen pro Kunde, bevor Sie skalieren.",[104,107,110,113,116,119,122,125,128],{"id":105,"title":106},"what-the-portal-agent-owns","Wofür ist ein Portal-Agent zuständig?",{"id":108,"title":109},"account-data-comes-from-systems-not-from-text","Woher sollte der Agent Kontodaten beziehen?",{"id":111,"title":112},"per-user-permissions-inside-a-buyer-account","Wie funktionieren Rechte in einem Firmenkonto?",{"id":114,"title":115},"caching-versus-per-customer-data","Was darf in einem B2B-Portal gecacht werden?",{"id":117,"title":118},"what-deflects-and-what-needs-a-human","Welche Fragen kann der Agent abschließen, welche brauchen einen Menschen?",{"id":120,"title":121},"the-business-case","Was ist ein Portal-Agent wert?",{"id":123,"title":124},"when-not-to-build-it","Wann sollte man keinen Portal-Agenten bauen?",{"id":126,"title":127},"checklist","Eine Checkliste für einen Portal-Agenten",{"id":129,"title":130},"sources","Quellen",[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],"Ein ",{"tag":137,"children":138},"strong",[139],"B2B-Kundenportal"," ist der Ort, an den Einkäufer nach dem Kauf gehen: um Auftragsstatus und Liefertermine zu prüfen, Rechnungen und Gutschriften herunterzuladen, Restmengen aus Verträgen zu sehen und nachzubestellen, was sie zuletzt gekauft haben. Ein KI-Agent im Portal beantwortet diese Fragen in normaler Sprache, aber nur aus Live-Kontodaten, die er über Werkzeuge abruft, und nur innerhalb dessen, was der angemeldete Nutzer sehen darf.",{"type":133,"content":142},[143,144,149],"Dieser Artikel behandelt, wofür der Portal-Agent zuständig ist, warum Kontodaten aus Werkzeugen und nicht aus indiziertem Text kommen müssen, Rechte pro Nutzer in einem Firmenkonto mit vielen Nutzern, die Cache-Grenze für kundenspezifische Daten, welche Fragen sich abfangen lassen und welche einen Menschen brauchen, und den Business Case. Hilfe vor dem Kauf im Shop ist ein anderes Problem, beschrieben in ",{"tag":145,"to":146,"children":147},"link","\u002Fblog\u002Fai-assistant-b2b-shop-customer-support",[148],"KI-Support für B2B-Shops",".",{"type":151,"level":152,"id":105,"text":106},"heading",2,{"type":133,"content":154},[155],"Er übernimmt die Routinefragen nach dem Kauf: Wo ist mein Auftrag, wann kommt er, warum weicht diese Rechnung vom Auftrag ab, ist die Gutschrift gebucht, was ist vom Abruf noch übrig, bestelle die übliche Liste nach, und ist es lagernd. Eine kurze Liste geht immer an einen Menschen: Streitfälle, Vertragsänderungen, Gutschrifts- und Kulanzentscheidungen und alles mit rechtlichem Gewicht.",{"type":133,"content":157},[158,159,163],"Genau das wünschen sich Einkäufer. In einer Umfrage von Sana Commerce unter 1.000 B2B-Einkäufern wollten 37 % Auftragsstatus, Auftragshistorie und offene Rechnungen im Webshop sehen und 40 % korrekte Bestände, Preise und Liefertermine (",{"tag":160,"href":46,"children":161},"a",[162],"Digital Commerce 360, März 2024","; Anbieterumfrage).",{"type":133,"content":165},[166],"Nachbestellungen verdienen besondere Sorgfalt, denn sie sind die Aktion, die dem Umsatz am nächsten ist. Der Agent baut einen Warenkorb aus der Auftragshistorie, prüft jede Position gegen aktuelle Verfügbarkeit, Nachfolger für ausgelaufene Artikel und den aktuellen Kundenpreis und zeigt, was sich seit der letzten Bestellung geändert hat. Der Nutzer bestätigt den Warenkorb; der Agent bestellt nie selbst. Derselbe Ablauf funktioniert für wiederkehrende Listen, etwa die monatliche Verbrauchsmaterialbestellung eines Standortleiters.",{"type":151,"level":152,"id":108,"text":109},{"type":133,"content":169},[170],"Aus den führenden Systemen, über Werkzeuge, zum Zeitpunkt der Frage. ERP oder Auftragsmanagement führen Aufträge, Lieferungen, Rechnungen und Gutschriften; das Portal ist eine Leseschicht mit API und Synchronisationsverzug. Kontodokumente in einen Vektorspeicher zu indizieren und „aus Dokumenten zu antworten“, scheitert hier, denn die Antwort, auf die es ankommt, der heutige Status, ändert sich nach der Indizierung.",{"type":172,"src":173,"alt":174,"wide":175,"caption":176},"image","\u002Fimages\u002Fblog\u002Fb2b-customer-portal-ai\u002Fdiagram-8.webp","Anfrageweg des Portal-Agenten mit Berechtigungsprüfungen Von links nach rechts: Ein Einkäufer mit Rolle und Geschäftsbereich meldet sich am Portal-Backend an, das Session und Rolle hält. Der Agent handelt als dieser Nutzer und ruft Werkzeuge mit Scope auf, die aus ERP und Auftragssystem, Rechnungen und Bestand lesen. Unter den Werkzeugen läuft bei jedem Aufruf eine Prüfung auf Objektebene; unter dem Agenten übernimmt eine menschliche Übergabe Streitfälle und Gutschriftsfragen. Die Identität des Nutzers reist bei jedem Aufruf mit, ein Servicekonto gibt es nicht.",true,"Der Anfrageweg des Portal-Agenten: Die Identität fließt vom angemeldeten Nutzer über den Agenten in jeden Werkzeugaufruf, jeder Aufruf prüft den Zugriff auf das konkrete Objekt, und Streitfälle oder Gutschriftsfragen gehen an einen Menschen.",{"type":133,"content":178},[179,180,183],"Rechnungs- und Gutschriftsfragen zeigen den Grund. Eine Gutschrift steht am Ende einer Kette aus Retourenauftrag, RMA, Disposition und Gutschrift im ERP, und zwischen Handelspartnern reisen dieselben Fakten als EDI-Nachrichten, etwa X12 810 für Rechnungen und 812 für Gut- und Lastschriften. Der Agent erklärt eine Rechnung, indem er diese Datensätze liest und das PDF verlinkt, nicht indem er es umschreibt. Das wird wichtiger, je mehr Rechnungen strukturierte Daten werden: In Frankreich muss seit 1. September 2026 jedes umsatzsteuerpflichtige Unternehmen E-Rechnungen über eine zugelassene Plattform empfangen können, und große und mittlere Unternehmen müssen sie ab demselben Datum ausstellen (",{"tag":160,"href":69,"children":181},[182],"Service-Public.fr",").",{"type":133,"content":185},[186],"Seien Sie ehrlich bei der Aktualität. Jede Antwort, die von einem synchronisierten Wert abhängt, sollte sagen, wann und aus welchem System er gelesen wurde, etwa „Status aus dem ERP, 10:42“. Liest das Portal aus einer Replik, die dem ERP Minuten hinterherhinkt, sollte der Agent das sagen, statt den Wert als live darzustellen. Kunden verzeihen eine angegebene Verzögerung viel eher als einen Liefertermin, der sich als der von gestern herausstellt.",{"type":151,"level":152,"id":111,"text":112},{"type":133,"content":189},[190,191,194],"Ein B2B-Konto hat viele Nutzer mit unterschiedlichen Bereichen, und der Agent muss genau den Bereich eines Nutzers übernehmen. Das Firmenkontomodell von Spryker ist ein gutes Beispiel: Geschäftsbereiche, Rollen und Auftragssichtbarkeit auf drei Ebenen, eigene Aufträge, Aufträge des Geschäftsbereichs oder des Unternehmens (",{"tag":160,"href":60,"children":192},[193],"Spryker-Dokumentation","). Andere Plattformen unterscheiden sich im Detail, die Form ist aber verbreitet.",{"type":133,"content":196},[197,198,201],"Die verwundbare Stelle ist der Zugriff auf Objekte, nicht auf Endpunkte. OWASP führt Broken Object Level Authorization auf Platz eins der API Top 10 2023 und hält fest, dass der Vergleich des Session-Nutzers mit einer ID in der URL nicht reicht; jeder Endpunkt, der eine Objekt-ID erhält, muss prüfen, ob dieser Nutzer auf genau dieses Objekt zugreifen darf (",{"tag":160,"href":49,"children":199},[200],"OWASP API1:2023","). Ein Agent verschärft das, weil er bereitwillig IDs ausprobiert, die er in einer eingefügten E-Mail gesehen hat. Legen Sie die Prüfung in jedes Werkzeug:",{"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],"Der Agent läuft nie als Servicekonto mit Rechten über alle Kunden. Werden die Werkzeuge über MCP angeboten, beschreibt die aktuelle Autorisierungsspezifikation, Revision 2026-07-28, das Muster: OAuth 2.1, Resource Indicators, damit ein Token an einen Server gebunden ist, minimale Scopes mit Step-up bei ",{"tag":203,"children":209},[210],"insufficient_scope"," und ausdrücklicher Schutz vor Confused-Deputy-Angriffen (",{"tag":160,"href":57,"children":213},[214],"MCP","). Die Retrieval-Variante derselben Regel steht in ",{"tag":145,"to":217,"children":218},"\u002Fblog\u002Frag-access-control-permissions",[219],"Zugriffskontrolle für RAG",{"type":133,"content":221},[222],"Firmenkonten tragen außerdem Freigaberegeln: Bestellbudgets pro Nutzer, Kostenstellen und Aufträge über einem Limit, die eine zweite Person im Unternehmen des Käufers brauchen. Der Agent muss diese Regeln genau so einhalten wie der Webshop, indem er dieselben Checkout- und Freigabedienste aufruft, statt sie nachzubauen. Eine Nachbestellung, die den Freigabeschritt des Käufers überspringt, ist ein Fehler, auch wenn jeder Preis und jede Menge stimmt.",{"type":151,"level":152,"id":114,"text":115},{"type":133,"content":225},[226,227,230,231,234],"Nur, was für jeden Kunden identisch ist. RFC 9111 legt fest, dass ein geteilter Cache eine Antwort auf eine Anfrage mit Authorization-Header nicht wiederverwenden darf, sofern eine Antwortdirektive das nicht ausdrücklich erlaubt, und definiert ",{"tag":203,"children":228},[229],"private"," für Antworten, die für einen Nutzer bestimmt sind (",{"tag":160,"href":33,"children":232},[233],"RFC 9111","). In einem Portal sind Preise, Kundenbestand, Aufträge, Rechnungen und Abrufmengen per Definition kundenspezifisch.",{"type":236,"head":237,"rows":246},"table",[238,240,242,244],[239],"Daten",[241],"Geteilter Cache?",[243],"Cache-Schlüssel",[245],"Invalidierung",[247,256,265,273,279,287],[248,250,252,254],[249],"Katalog, Inhalte",[251],"ja",[253],"URL, Sprache",[255],"Änderung in PIM oder CMS",[257,259,261,263],[258],"Kundenpreise",[260],"nein",[262],"nur privat: Kunde, Preisliste",[264],"Vertrags- oder Preislistenänderung",[266,268,269,271],[267],"Bestand für den Kunden",[260],[270],"keiner, live lesen",[272],"—",[274,276,277,278],[275],"Auftragsstatus",[260],[270],[272],[280,282,283,285],[281],"Rechnungen, Gutschriften",[260],[284],"nur privat: Nutzerbereich",[286],"Ereignis neuer Beleg",[288,290,291,292],[289],"Abrufmengen",[260],[270],[272],{"type":133,"content":294},[295,296,299,300,302,303,306,307,310],"Header allein reichen nicht. Web Cache Deception bringt Caches dazu, private dynamische Antworten zu speichern, indem Unterschiede in der Pfadauswertung zwischen Cache und Ursprung ausgenutzt werden; PortSwigger empfiehlt, dynamische Antworten mit ",{"tag":203,"children":297},[298],"no-store"," oder ",{"tag":203,"children":301},[229]," zu kennzeichnen und sicherzustellen, dass CDN-Regeln ",{"tag":203,"children":304},[305],"Cache-Control"," nicht überschreiben (",{"tag":160,"href":54,"children":308},[309],"PortSwigger","). In einem Nuxt-Frontend machen Route Rules die Trennung ausdrücklich:",{"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],"Entscheiden Sie je Fragetyp, nicht für das Portal als Ganzes. Gartners Umfrage unter 5.728 Kunden ergab, dass nur 14 % der Serviceanliegen vollständig per Self-Service gelöst werden, selbst bei sehr einfachen Anliegen nur 36 %; 43 % der Fehlschläge lagen daran, dass relevante Inhalte nicht gefunden wurden (",{"tag":160,"href":37,"children":318},[319],"Gartner, Aug. 2024","). Ein Agent mit Live-Werkzeugen kann den Teil „nicht gefunden“ beheben; der Rest bleibt bei Menschen.",{"type":236,"head":322,"rows":331},[323,325,327,329],[324],"Fragetyp",[326],"Führendes System",[328],"Modus des Agenten",[330],"Zugehörige Kennzahl",[332,341,350,356,365,373],[333,335,337,339],[334],"Auftragsstatus, Liefertermin",[336],"ERP, OMS",[338],"Werkzeugaufruf",[340],"Kontakte pro Auftrag",[342,344,346,348],[343],"Rechnung, Gutschrift",[345],"ERP",[347],"Werkzeugaufruf mit PDF-Link",[349],"Lösung je Fragetyp",[351,353,354,355],[352],"Vertrag, Abrufmenge",[345],[338],[349],[357,359,361,363],[358],"Nachbestellung aus Historie",[360],"Shop, ERP",[362],"Werkzeug, Nutzer bestätigt Warenkorb",[364],"Nachbestellquote",[366,368,370,371],[367],"Bestandsabfrage",[369],"ERP, ATP",[338],[372],"Portalnutzung",[374,376,378,380],[375],"Streitfall, Gutschriftswunsch",[377],"Menschen, CRM",[379],"nur Mensch, mit Zusammenfassung",[381],"Zeit bis zum Menschen",{"type":383,"variant":384,"title":385,"body":386},"callout","warn","Abfangen ist nicht Lösen",[387],[388,389,392,393,183],"Abfangen zählt vermiedene Kontakte, Lösen zählt gelöste Probleme. Anbieterkennzahlen enthalten oft angenommene Lösungen: Fin von Intercom zählt ein Gespräch als gelöst, wenn der Kunde es bestätigt oder weder nach einem Menschen gefragt noch negativ geantwortet hat (",{"tag":160,"href":66,"children":390},[391],"Fin-Hilfecenter","). Berichten Sie bestätigte und angenommene Lösungen getrennt und zählen Sie erneute Kontakte innerhalb weniger Tage. Klarnas Assistent übernahm 2024 im ersten Monat zwei Drittel der Chats, im Mai 2025 stellte das Unternehmen wieder menschliche Mitarbeiter ein und betonte, dass Kunden immer einen Menschen erreichen können müssen (",{"tag":160,"href":63,"children":394},[395],"Fortune",{"type":133,"content":397},[398,399,402],"Geht eine Frage an einen Menschen, sollte die Übergabe die bereits erledigte Arbeit mitnehmen: Nutzer, Konto, die vom Agenten abgefragten Objekte und was er gefunden hat, damit der Kunde nicht alles wiederholen muss. ContactBabel berichtet, dass 52 % der Unternehmen sagen, Kunden riefen an, weil sie die Self-Service-Funktion gar nicht gefunden haben (",{"tag":160,"href":40,"children":400},[401],"ContactBabel","); eine sichtbare, gut vorbereitete Übergabe ist Teil des Self-Service-Designs, kein Eingeständnis des Scheiterns.",{"type":151,"level":152,"id":120,"text":121},{"type":133,"content":405},[406],"Er ist niedrigere Kosten pro Kontakt bei häufigen, einfachen Fragen wert und schnellere, fehlerfreie Nachbestellungen. Eine geprüfte Wirkung von Portal-Agenten im B2B ist nicht veröffentlicht; der Business Case nutzt daher Kosten-pro-Kontakt-Daten, Einkäuferpräferenzen und Messung pro Kunde.",{"type":408,"ordered":409,"items":410},"list",false,[411,419,424],[412,415,416,418],{"tag":137,"children":413},[414],"Kosten pro Kontakt:"," ContactBabels Self-Service-Leitfaden, aktualisiert im Dezember 2025, beziffert eine typische Web-Self-Service-Sitzung auf unter 10 Pence oder 15 Cent gegenüber 6,25 Pfund oder 7,16 US-Dollar pro Telefonat (",{"tag":160,"href":40,"children":417},[401],"). Das sind Durchschnittswerte aus britischen und US-Contact-Centern, nicht B2B-spezifisch.",[420,423],{"tag":137,"children":421},[422],"Nachbestellungen:"," 79 % der B2B-Einkäufer in der Umfrage von Sana Commerce bestellen lieber online nach, berichten aber Fehler bei 33 % der Online-Bestellungen; 68 % schrecken solche Fehler ab, und 74 % würden für einen besseren Webshop den Lieferanten wechseln (Anbieterumfrage, März 2024).",[425,428,429,183],{"tag":137,"children":426},[427],"Digitaler Anteil:"," McKinseys B2B Pulse 2026 berichtet, dass 71 % der B2B-Unternehmen inzwischen online verkaufen und etwa ein Drittel des Umsatzes über digitale Kanäle läuft (",{"tag":160,"href":43,"children":430},[431],"McKinsey, Mai 2026",{"type":133,"content":433},[434],"Für eine E-Commerce- oder Kundenservice-Leitung sind die vier Kennzahlen pro Kunde: Abfangquote je Fragetyp, Nachbestellquote aus der Historie, Portalnutzung und Kontakte pro Auftrag. Ich baue diese Schicht, Rechte, Caching und das Nuxt-Frontend, auf B2B-Commerce-Stacks wie Spryker und Pimcore, und betreibe LLM-Funktionen auf meiner eigenen Nuxt-Seite; dieselben Grenzen gelten in beiden Größenordnungen.",{"type":151,"level":152,"id":123,"text":124},{"type":133,"content":437},[438],"Bauen Sie keinen, wenn die ERP-Daten unzuverlässig sind, wenn Rechnungen nur als Scans ohne strukturierte Quelle existieren, wenn niemand eine durchsetzbare und testbare Berechtigungsmatrix verantwortet oder wenn es kein Audit-Log gibt. Bei geringem Auftragsvolumen schlagen eine gute Suche und eine sichtbare Telefonnummer jeden Agenten. Und vermeiden Sie Abfang-Theater: Zählt die Leitkennzahl angenommene Lösungen, sieht sie besser aus als die Wirklichkeit.",{"type":133,"content":440},[441],"Portale für mehrere Gesellschaften und Sprachen bringen eine weitere Bedingung: Jede Sprache und jede juristische Einheit braucht eine verantwortliche Person, die prüft, was der Agent in diesem Markt über Rechnungen, Steuern und Lieferbedingungen sagt. Ohne Verantwortliche je Sprache sollten Sie warten.",{"type":151,"level":152,"id":126,"text":127},{"type":408,"ordered":175,"items":444},[445,447,449,451,453,455,457,459],[446],"Die Berechtigungsmatrix als Code schreiben und mit Nutzern auf Ebene eigene Daten, Geschäftsbereich und Unternehmen testen.",[448],"Objektzugriff in jedem Werkzeug prüfen und für fehlende und verbotene Objekte denselben Fehler liefern.",[450],"Cache-Header auf jeder angemeldeten Route testen, inklusive CDN-Regeln; ich fahre diese Prüfungen mit Playwright MCP.",[452],"Kennungen wie Auftrags- und Rechnungsnummern wörtlich aus Werkzeugen liefern, nie aus dem Modell.",[454],"In jeder Antwort zu Belegen das echte Rechnungs- oder Gutschrifts-PDF verlinken.",[456],"Eskalation je Fragetyp festlegen und die Option Mensch auf jeder Ansicht sichtbar halten.",[458],"Kennzahlendefinitionen vor dem Start schreiben, bestätigte und angenommene Lösung getrennt.",[460],"Einen Audit-Trail jedes Werkzeugaufrufs mit Nutzer, Objekt und Ergebnis führen.",{"type":133,"content":462},[463,464,468],"Ein Pilot für einen Fragetyp, Auftragsstatus oder Rechnungen, mit festgelegtem Abbruchkriterium ist der ehrliche Start. Wenn Sie Unterstützung beim Berechtigungsmodell, der Cache-Grenze oder der Werkzeugschicht möchten, sehen Sie sich meine ",{"tag":145,"to":465,"children":466},"\u002Fexpertise\u002Fb2b-ecommerce-developer",[467],"B2B-E-Commerce-Arbeit"," an.",{"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":75,"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-Strukturdaten für B2B-Shops: Preise hinter Logins, Einheiten und Varianten","Produkt-Markup für B2B-Shops: Snippet oder Händlereintrag, welcher Preis, Artikelnummern, Grundpreise, Varianten, Organization und SSR in Nuxt.","Ein Produktrechteck mit dünnem Rahmen und einem kleinen Feld, das eine niedrige Wand verdeckt.",{"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":75,"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],"Ein KI-Assistent für den Support im B2B-Shop: Tools, Berechtigungen und die Übergabe an Menschen","Wie man einen KI-Support-Assistenten für einen B2B-Shop baut: was automatisieren, Tools im Kundenkontext, Übergabe an Menschen, AI Act und Kennzahlen.","Eine hohe Mauer mit schmalem Durchgang: Ein Pfeil führt in ein Feld mit drei Quadraten, ein zweiter nach unten zu einer Ablage.",{"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":75,"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],"Streaming-Chat mit KI in Vue und Nuxt: von Anfang an barrierefrei","KI-Chat in Vue oder Nuxt: Fetch-Streams, Abbruch und Retry, sicheres Markdown-Rendering, aria-live-Meldungen, Tastaturnavigation und Reduced Motion.","Eine Nachrichtenkarte mit blinkendem Cursor, eine gepunktete Linie öffnet sich zu Wellen, daneben ein Haken.",{"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":75,"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],"Eine LLM-Übersetzungspipeline für i18n: Glossar, Platzhalter und Review","Produkt- und Website-Texte mit LLMs übersetzen, ohne Platzhalter, Pluralformen oder Tonalität zu beschädigen: Glossar, ICU-Nachrichten, QA-Checks, Review.","Drei Quellkarten, eine übersetzte Karte mit Glossar-Lesezeichen, dann eine geprüfte Klemmschiene.",1792337023392]