[SUB] PlentyOne Lookup¶
Wird vom DAILY mokebo-ops Sync automatisch befüllt — bitte nicht manuell editieren.
Status: — Letzter Erfolgs-Run: — Erfolgsquote 7d: — Trigger: — Node-Count: —
🟢 Auf einen Blick¶
| Was tut der Workflow | Sucht zu einem Zendesk-Ticket den passenden Plenty-Auftrag — über Bestellnummer, externalOrderId oder Email. |
| Wann greift er | Aus Parent-Workflows wie MOKI Dispatcher v2 heraus per Subworkflow-Call. |
| Sichtbarer Effekt für CS | Keiner direkt — liefert orderData an den Parent. Sichtbar nur über lookup_status in der Internal Note (found/not_found/skipped). |
| Symptom wenn kaputt | Parent-Workflow zeigt 401-Fehler oder lookup_status: error mit Plenty-bezogener Message. |
| Owner | Susi (Backup: TBD) |
| Eskalation | Susi direkt anschreiben (Slack-DM). Bei 401: zuerst Runbook „PlentyOne Login entsperren" durchlaufen. |
| Link in n8n | SUB PlentyOne Lookup |
Architektur¶
flowchart LR
In[Input von Parent
ticketData] --> Login[Login PlentyOne]
Login --> Regex[Regex Extraktor]
Regex --> Strategy{Lookup-Strategie}
Strategy -- direct --> Direct[GET /orders/]
Strategy -- external --> Ext[GET /orders/?externalOrderId=...]
Strategy -- email --> Email[GET /orders/?contactReceiver=...]
Strategy -- skip --> Skip[Return: nicht gefunden]
Direct --> Out[Return orderData]
Ext --> ValExt[Validierung extern] --> Out
Email --> Out
Skip --> Out
Subworkflow-Calls¶
Auto-generiert aus den executeWorkflow-Nodes — bitte nicht manuell editieren.
- (keine — dieser Workflow ist selbst ein Sub)
Trigger & Datenfluss¶
- Trigger: Subworkflow-Call aus Parent.
- Input:
ticketDatamitsubject,body,requester_email. - Auth: Custom Auth Credential
Plenty Login Body→Login PlentyOne-Node liefertaccess_token. Folgecalls referenzieren via=Bearer {{ $('Login PlentyOne').item.json.access_token }}(siehe Auth-Patterns). - Output:
{ status, orderData, lookup_status, lookup_method, lookup_error? }.
Lookup-Strategie (Reihenfolge)¶
- Wenn Regex eine
orderId(Plenty-Internal) findet → direct. - Wenn Regex eine
externalOrderIdfindet:- Bei
MKB-…(mokebo-Marketplace-Format): wenn Sender-Email keine Marketplace-Forwarder-Adresse ist, email-Strategie. Sonst skip. - Sonst → external.
- Bei
- Sonst → email (Default), außer Sender ist ein Marketplace-Forwarder → skip.
Regex-Patterns (in Regex Extraktor)¶
| # | Pattern | Marketplace |
|---|---|---|
| 1 | /MKB-\d{4,6}/g |
mokebo-Internal |
| 2 | /302-\d{7}-\d{7}/g |
Amazon |
| 3 | … |
… |
| 4 | /517\d{10}(-[A-Z])?/g |
XXXLutz (zu eng — siehe Stolperstein) |
Bekannte Stolpersteine / Edge-Cases¶
- XXXLutz-Pattern erkennt
5xxx…nicht. Echte Bestellnummern beginnen z.B. mit500…(5002604318955-A). Pattern muss erweitert werden — Susi liefert echte Beispiele aus den letzten 4 Wochen oder gibt Vendor-Doku-Zugang. - Marketplace-Forwarder als Sender.
marketplace@…,mail-marketplace@…,donotreply@…,no-reply@…,reply+…dürfen nie als Email-Lookup-Quelle verwendet werden — falsche Customer-Matches. Siehe Pattern inLookup Strategie-Code (MARKETPLACE_EMAIL_PATTERNS). accessTokenvs.access_token. PlentyOne-Response liefert snake_case. Vereinzelte alte Workflows nutzen camelCase — Tippfehler aus alten Versionen, korrekt istaccess_token.- Token wird pro Run neu geholt. Kein Caching — Stand 2026-05-11. Geplant: in
[SUB] Plenty Authextrahieren.
Debug-Anleitung¶
- n8n → Executions → Filter „Failed".
- Bei 401 / 403 am
Login PlentyOne-Node: → Runbook „PlentyOne Login entsperren". - Bei
lookup_status: not_found: prüf den Ticket-Body — ist da überhaupt eine Bestellnummer oder Email-Match möglich? - Bei
lookup_status: errormitPlenty 5xx: Plenty-Wartung oder Rate-Limit. Retry oder warten.
Entscheidungen / Geschichte¶
- 2026-05-06: Plenty-Login-Lock-Diagnose dokumentiert (siehe Runbook).
- (offen) Marketplace-Email-Skip-Logik soll in
Lookup Strategie-Code aufgenommen werden.