Vai al contenuto
Menu documenti

Inizia ora

Segnalazioni di problemi

Come un'automazione elenca i rapporti aperti inviati da pagine TradeCatalog con accesso.

I dipendenti dei fornitori e gli acquirenti autenticati possono inviare un bug o un commento da qualsiasi pagina nell'app. Ogni rapporto è archiviato con stato aperto e inviato via email a Happy Webs.

Questa pagina è per l'automazione che raccoglie questi rapporti. Non è una chiave API dello spazio di lavoro, né è inclusa nel documento OpenAPI.

AutenticazioneCollegamento a questa sezione#

La richiesta utilizza un token Bearer. Il token è il segreto Worker FEEDBACK_REPORTS_TOKEN.

Impostalo una volta, fuori da git:

bash
wrangler secret put FEEDBACK_REPORTS_TOKEN

Per lo sviluppo locale, inserisci lo stesso nome in .dev.vars. Non committare il valore.

Inviatolo su ogni richiesta:

http
GET /api/feedback-reports?since=2026-10-15T00:00:00.000Z HTTP/1.1
Host: tradecatalog.app
Authorization: Bearer <FEEDBACK_REPORTS_TOKEN>
bash
curl "https://tradecatalog.app/api/feedback-reports?since=2026-10-15T00:00:00.000Z" \
  -H "Authorization: Bearer $FEEDBACK_REPORTS_TOKEN"

Se il segreto è assente, o l'intestazione è assente o errata, la risposta è 401 con WWW-Authenticate: Bearer realm="feedback-reports". Non esiste alcun cookie, alcuna chiave API dello spazio di lavoro e nessun CORS.

GET/api/feedback-reports

Elenco dei rapporti apertiCollegamento a questa sezione#

since è richiesto. È un orario ISO-8601 o un orario Unix in millisecondi. L'elenco è i rapporti aperti creati dopo quel tempo, dal più vecchio al più recente, fino a 100.

NomeTipoObbligatorioDescrizione
sincestringasìLimite inferiore esclusivo su createdAt.
afterstringanoID del rapporto. Con since, restituisce anche i rapporti che condividono quel tempo esatto e vengono dopo questo ID. Usali entrambi quando hasMore è vero.

Un rapporto chiuso non è incluso in questa lista, anche se è stato creato dopo since.

json
{
  "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
}

Memorizza createdAt e id dell'ultimo rapporto che hai conservato. La prossima richiesta utilizza quel tempo come since. Se la pagina era piena (hasMore è vero), passa anche quell'ID come after e mantieni lo stesso since, in modo che un rapporto salvato nello stesso millisecondo non venga saltato.

SchermataCollegamento a questa sezione#

GET/api/feedback-reports/{id}/screenshot

Lo stesso token Bearer. La risposta è l'immagine, o 404 quando quel rapporto non ha uno screenshot. L'ID è l'ID del rapporto dall'elenco. Non è una chiave dell'oggetto.

Gli amministratori della piattaforma possono aprire la schermata mentre sono connessi su /admin/feedback-reports/{id} e risolvere un rapporto su Supporto → Report.

Risposta automaticaCollegamento a questa sezione#

Salvare un rapporto invia un breve messaggio all'indirizzo email della persona connessa. Risolverlo invia un altro messaggio per indicare che è stato risolto e reso disponibile. Ogni invio avviene al massimo una volta per rapporto.

autoReplyText e autoReplySentAt sono quel primo messaggio. resolvedReplyText e resolvedReplySentAt sono il messaggio risolto. Rimangono nulli fino a quando l'email non è stata inviata.

Impostare la variabile Worker FEEDBACK_AUTO_REPLY su off per fermarli entrambi. AUTO_REPLY_BCC è un segreto: l'indirizzo copiato su quelle email. Lasciarlo non impostato significa che nulla viene copiato. Il testo è stato redatto con Workers AI. Se quel bozzo non supera un controllo, viene inviato un messaggio fisso al posto suo.

Ogni rapporto diventa anche un ticket numerato. Risolvere quel ticket invia la stessa email fissa e disponibile una volta. La posta a support@ o info@tradecatalog.app viene inoltrata a SUPPORT_FORWARD_TO prima di essere letta, quindi archiviata nello stesso modo. Se quell'indirizzo è assente o l'inoltro fallisce, il messaggio viene rifiutato in modo che l'inviatore possa riprovare. Viene collegato a un account esistente solo quando Authentication-Results mostra un passaggio DMARC, o entrambi DKIM e SPF quando DMARC è assente. Altrimenti, il ticket rimane non collegato e non viene inviata alcuna conferma.