Angemeldetes Lieferantenteam und Käufer können einen Fehler oder eine Rückmeldung von jeder Seite in der App senden. Jede Meldung wird mit dem Status „Offen“ gespeichert und an Happy Webs per E-Mail gesendet.
Diese Seite ist für die Automatisierung, die diese Meldungen abgreift. Es ist kein Workspace-API-Schlüssel und nicht in der OpenAPI-Dokumentation.
AuthentifizierenLink zu diesem Abschnitt#
Die Anfrage verwendet ein Bearer-Token. Das Token ist der Worker-Geheimnis FEEDBACK_REPORTS_TOKEN.
Setzen Sie es einmal außerhalb von Git:
wrangler secret put FEEDBACK_REPORTS_TOKEN
Für die lokale Entwicklung geben Sie denselben Namen in .dev.vars ein. Committen Sie den Wert nicht.
Senden Sie es mit jeder Anfrage:
GET /api/feedback-reports?since=2026-10-15T00:00:00.000Z HTTP/1.1
Host: tradecatalog.app
Authorization: Bearer <FEEDBACK_REPORTS_TOKEN>
curl "https://tradecatalog.app/api/feedback-reports?since=2026-10-15T00:00:00.000Z" \
-H "Authorization: Bearer $FEEDBACK_REPORTS_TOKEN"
Wenn der Geheimnis fehlt, oder der Header fehlt oder falsch ist, ist die Antwort 401 mit WWW-Authenticate: Bearer realm="feedback-reports". Es gibt kein Cookie, keinen Workspace-API-Schlüssel und keine CORS.
GET/api/feedback-reports
Offene Meldungen auflistenLink zu diesem Abschnitt#
since ist erforderlich. Es ist ein ISO-8601-Format oder eine Unix-Zeit in Millisekunden. Die Liste enthält offene Meldungen, die nach diesem Zeitpunkt erstellt wurden, ältesten zuerst, bis zu 100.
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
since | string | ja | Exklusives unteres Limit für createdAt. |
after | string | nein | Bericht-ID. Mit since gibt es auch Berichte, die diese exakte Zeit und nach dieser ID sortieren. Nutzen Sie beide, wenn hasMore wahr ist. |
Ein Bericht, der geschlossen wurde, ist in dieser Liste nicht enthalten, auch wenn er nach since erstellt wurde.
{
"reports": [
{
"id": "…",
"kind": "bug",
"status": "open",
"message": "The price shows as zero.",
"pageUrl": "https://tradecatalog.app/s/northgate/products",
"tenantSlug": "northgate",
"userId": "…",
"role": "Owner",
"email": "owner@example.com",
"userAgent": "…",
"viewport": "1440x900",
"createdAt": "2026-10-15T12:00:00.000Z",
"hasScreenshot": true,
"screenshotUrl": "https://tradecatalog.app/api/feedback-reports/…/screenshot",
"autoReplyText": null,
"autoReplySentAt": null,
"resolvedReplyText": null,
"resolvedReplySentAt": null,
"adminUrl": "https://tradecatalog.app/admin?section=reports&report=…"
}
],
"hasMore": false
}
Speichern Sie die createdAt und id des letzten Berichts, den Sie behalten haben. Die nächste Abfrage verwendet diese Zeit als since. Wenn die Seite voll war (hasMore ist wahr), geben Sie auch diese ID als after weiter und behalten Sie denselben since, damit ein Bericht, der in derselben Millisekunde gespeichert wurde, nicht übersprungen wird.
ScreenshotLink zu diesem Abschnitt#
GET/api/feedback-reports/{id}/screenshot
Das gleiche Bearer-Token. Die Antwort ist das Bild oder 404, wenn dieser Bericht keinen Screenshot hat. Die ID ist die Bericht-ID aus der Liste. Es ist kein Objektschlüssel.
Plattform-Administratoren können auch ein Screenshot öffnen, während sie bei /admin/feedback-reports/{id} angemeldet sind, und einen Bericht unter Support → Berichte beheben.
Automatische AntwortLink zu diesem Abschnitt#
Das Speichern eines Berichts sendet der angemeldeten Person eine kurze Nachricht an ihre eigene Adresse. Das Beheben sendet eine weitere Nachricht, um zu sagen, dass es behoben und live ist. Jede dieser Nachrichten wird maximal einmal pro Bericht gesendet.
autoReplyText und autoReplySentAt sind diese erste Nachricht. resolvedReplyText und resolvedReplySentAt sind die behebte Nachricht. Sie bleiben bis zur Versendung der E-Mail auf null.
Setzen Sie die Worker-Variable FEEDBACK_AUTO_REPLY auf off, um beide zu deaktivieren. AUTO_REPLY_BCC ist ein Geheimnis: die Adresse, die in diesen E-Mails kopiert wird. Lassen Sie sie ungesetzt, und nichts wird kopiert. Der Text wurde mit Workers AI verfasst. Wenn dieser Entwurf eine Prüfung nicht besteht, wird stattdessen eine feste Nachricht gesendet.
Jeder Bericht wird auch zu einer nummerierten Ticket. Das Beheben dieses Tickets sendet die gleiche feste und live E-Mail einmal. E-Mails an support@ oder info@tradecatalog.app werden vor der Lektüre an SUPPORT_FORWARD_TO weitergeleitet, dann auf die gleiche Weise archiviert. Wenn diese Adresse fehlt oder die Weiterleitung fehlschlägt, wird die Nachricht abgelehnt, damit der Absender es erneut versuchen kann. Sie wird nur an ein vorhandenes Konto angehängt, wenn Authentication-Results einen DMARC-Test besteht oder beide DKIM und SPF, wenn DMARC fehlt. Andernfalls bleibt das Ticket unverknüpft und es wird keine Bestätigung gesendet.