Zum Inhalt springen
Anwendungsfälle

Sendungsstatus aus Carrier-Portalen, die keine API haben

Regionale Spediteure und Frachtführer veröffentlichen den Sendungsstatus in einem Portal und sonst nirgends. Ein Workflow meldet sich an, sucht deine Sendungen und liefert die Statusfelder, die der Kundenservice braucht.

Von der Sendungsliste zum Status-Feed

Tagsüber stündlich laufen lassen oder aus deinem System auslösen, wenn ein Kunde fragt.

  1. Carrier-Login in den Tresor

    Ein Zugang je Carrier-Portal, per Id aus dem Workflow referenziert. Das Passwort wird nur auf der Seite des Spediteurs getippt.

  2. Sendungsnummern übergeben

    Workflow-Eingaben tragen die Liste der zu prüfenden Sendungen. Ein Loop-Block geht die Liste durch und schlägt jede auf der Tracking-Seite des Portals nach.

  3. Statusfelder extrahieren

    Je Sendung: aktueller Status, letzter Scan-Ort, Zeitstempel, voraussichtliche Zustellung. Die Extraktion liefert JSON nach Schema und markiert, was sie nicht lesen konnte.

  4. In deine Tracking-Ansicht schicken

    Ein http_request-Block sendet die gesammelten Status an deinen Endpunkt. Der Kundenservice sieht eine Tabelle statt fünf Portale.

Eine Liste von Sendungen nachschlagen

import { Browserberg } from '@browserberg/sdk';

const bb = new Browserberg({
  apiKey: process.env.BROWSERBERG_API_KEY,
  baseUrl: 'https://browserberg.com',
});

const wf = await bb.workflows.publish({
  title: 'Carrier-Portal: Sendungsstatus',
  parameters: [{ key: 'sendungen', description: 'Nachzuschlagende Sendungsnummern', required: true }],
  blocks: [
    { blockType: 'login', label: 'Anmelden', credentialId: 'cred_carrier_portal' },
    { blockType: 'loop', label: 'Je_Sendung', items: '{{ sendungen }}', blocks: [
      { blockType: 'navigation', label: 'Tracking_oeffnen', url: 'https://portal.spedition.example/track/{{ item }}' },
      { blockType: 'extraction', label: 'Status_lesen',
        instruction: 'der Sendungsstatus: Zustand, letzter Scan-Ort, letzte Scan-Zeit, voraussichtliche Zustellung',
        schema: { type: 'object', properties: { zustand: { type: 'string' }, ort: { type: 'string' },
          scanZeit: { type: 'string' }, eta: { type: 'string' } } } },
    ] },
    { blockType: 'http_request', label: 'Veroeffentlichen', method: 'POST',
      url: 'https://tracking.intern.example/carrier-status', body: '{{ Je_Sendung_output }}' },
  ],
});

const session = await bb.sessions.create({ ttlSeconds: 900 });
const run = await bb.workflows.run(wf.workflowId, {
  sessionId: session.id,
  inputs: { sendungen: ['DE4471120033', 'DE4471120041'] },
});
console.log(run.status, run.outputs);

Details

Eingaben Deklarierte Workflow-Parameter, beim Start validiert; Templates lesen sie als {{ name }}
Loop Ein Loop-Block iteriert eine Liste; die Blöcke jeder Iteration veröffentlichen eigene Ausgaben
Session Jede Session, die du anlegst, oder ein reservierter Pool für planbare Startzeiten
Fehler Scheitert eine Sendung, ist der Block benannt; der Laufstatus sagt, ob der Rest weiterlief
Nachweis Laufprotokoll plus signiertes Aktionsprotokoll; beide tragen die Lauf-Id
Residenz EU-gehosteter Browser, standardmäßig EU-gebundene Extraktionsstufe

Stand: 2026-09-04

Fragen aus der Logistik

Der Carrier hat eine API. Soll ich das trotzdem machen?

Nein. Nutz die API. Ein Browser ist nur dort das richtige Werkzeug, wo das Portal die einzige Schnittstelle ist, was bei kleineren Spediteuren und Frachtführern noch häufig vorkommt.

Wie aktuell ist der Status?

So aktuell wie dein Zeitplan. Stündlich ist üblich; ein Webhook-Trigger lässt dein System eine Abfrage auf Zuruf starten, wenn ein Kunde anruft.

Geht das mit einem Portal, das nur eine Sendung je Suche zeigt?

Ja, dafür ist der Loop da: zur Suche navigieren, die Nummer eingeben, das Ergebnis extrahieren, wiederholen. Jede Iteration wird einzeln protokolliert.

Und die Tracking-Seiten der großen Paketdienste?

Bietet der Dienst eine Tracking-API, nutz die. Ist die Seite öffentlich und erlaubt Automatisierung, funktioniert eine einfache Extraktion. Browserberg tarnt sich nicht, um an einem Dienst vorbeizukommen, der Bots blockiert.

Bring dein langsamstes Carrier-Portal mit

Fünf Browserstunden, keine Karte. Ein Login, ein Loop, ein Endpunkt.