Ohne Programmieren: Postman, n8n, Make, Excel
Du kannst PetWorkers mit Tabellenprogrammen und anderen Werkzeugen verbinden. Hier findest du Beispiele für den Datenabruf und automatische Abläufe.
Wer hat Zugriff?
- Administratoren verwalten Zugänge unter System → API-Schlüssel und System → MCP.
- Programme brauchen einen aktiven, gültigen Schlüssel. Seine Stufe und Bereichsfreigaben begrenzen den Zugriff. Ein zugeordneter Kontakt muss aktiv sein; seine Rechte können zusätzlich einschränken.
- Schreibzugriffe brauchen zusätzlich Schreiben erlauben. Jeder Bereich hat eigene Lese- und Schreibrechte. Die Schnittstelle bietet nicht jede Funktion der Oberfläche an.
- Die Schnittstelle selbst legt keine API-Schlüssel an. Details: Rollen und Rechte.
Welche E-Mails werden verschickt?
- Lesen sowie Schlüssel anlegen, ändern oder sperren: keine E-Mails.
- Spezielle Assistent-Aktionen für Termine, Kunden und Tiere: keine Kundenmail und kein Rechnungsversand. Termine entstehen ohne Benachrichtigung.
- Andere Schreibaktionen: Beachte die Beschreibung des jeweiligen Bereichs. Eine Newsletter-Abmeldung kann beispielsweise eine Meldung an den Betreiber auslösen.
Kurz gesagt: Lege zuerst unter System → API-Schlüssel einen passenden Zugang an. Trage Adresse und Schlüssel im anderen Werkzeug ein. Beginne mit einer kleinen Leseabfrage.
Begriffe: API bedeutet Schnittstelle für andere Programme. Ein Endpunkt ist eine bestimmte Abrufadresse. JSON ist das Textformat der Antworten; eine Kennung (id) bezeichnet einen Eintrag.
So bereitest du einen Datenabruf vor
- Lege unter System → API-Schlüssel einen Schlüssel ohne Schreibrecht an.
- Kopiere die Adresse deiner Instanz in das gewählte Werkzeug.
- Trage den Schlüssel als Zugang ein.
- Starte zunächst einen Abruf mit höchstens fünf Kontakten.
- Prüfe die Antwort und anschließend die Anzahl der benötigten Seiten.
1. Postman, Insomnia, Bruno
Das sind Werkzeuge zum Ausprobieren von Schnittstellen — nützlich, bevor du irgendetwas baust.
Der bequeme Weg: Lade unter https://deine-adresse.de/api/beispiele/ die Datei petworkers-api.postman_collection.json herunter und importiere sie. Danach setzt du im Reiter Variables zwei Werte:
baseurl | https://deine-adresse.de/api/v1 |
apikey | dein Schlüssel |
Die Sammlung ist nach Bereichen gegliedert und enthält zu jedem Bereich die üblichen Anfragen — Liste, Einzelabruf, Anlegen, Ändern, Löschen — samt vorbereiteter Filter zum Einschalten.
Der immer aktuelle Weg: Importiere direkt die Beschreibungsdatei
Was macht das? Diese Adresse liefert die Beschreibung der verfügbaren Schnittstelle. Der Abruf benötigt ebenfalls deinen Schlüssel.
https://deine-adresse.de/api/v1/openapi.json
Sie wird bei jedem Abruf frisch erzeugt und ist deshalb nie veraltet. In Postman: Import → Link. Der Schlüssel gehört dann noch als Kopfzeile Authorization: Bearer … dazu.
2. n8n
n8n baut Abläufe zusammen, ohne dass du programmierst. Die Anbindung:
- Neuen Workflow anlegen, Knoten HTTP Request hinzufügen.
- Authentication: Generic Credential Type → Header Auth.
- Neue Zugangsdaten anlegen: Name
Authorization, WertBearer 3f7c…(mit dem Wort „Bearer“ und einem Leerzeichen davor). - URL:
https://deine-adresse.de/api/v1/contacts - Method:
GET - Bei Send Query Parameters die Filter eintragen, zum Beispiel
per_page=100.
Für Filter mit Klammern trägst du den Namen genau so ein: lastname[like] als Parametername, Mül als Wert.
Ein typischer Ablauf: Schedule Trigger (täglich um 6 Uhr) → HTTP Request (geänderte Kontakte holen) → Loop → dein Zielsystem.
3. Make (früher Integromat)
Make hat keinen eigenen PetWorkers-Baustein, aber den allgemeinen HTTP-Baustein — der reicht vollständig.
- Modul HTTP → Make a request hinzufügen.
- URL: die gewünschte Adresse, zum Beispiel
https://deine-adresse.de/api/v1/contacts?per_page=100 - Method:
GET - Unter Headers einen Eintrag anlegen: Name
Authorization, WertBearer 3f7c… - Parse response: einschalten — dann kannst du direkt mit
data[]weiterarbeiten.
4. Zapier
Über Webhooks by Zapier → Custom Request. Kopfzeile Authorization mit dem Wert Bearer 3f7c…, Methode und Adresse wie oben. Zapier zeigt die Antwort danach als Feldliste an.
5. So liest du Kontakte in Excel oder Power BI
Beide benutzen Power Query. So holst du eine Liste in eine Tabelle:
- In Excel: Daten → Daten abrufen → Aus anderen Quellen → Aus dem Web.
- Auf Erweitert klicken.
- Unter URL-Teile die Adresse eintragen.
- Unter HTTP-Anforderungsheaderparameter:
Authorization=Bearer 3f7c…
Wer lieber direkt in der Formelsprache arbeitet:
Was macht das? Diese Excel-Abfrage liest die erste Kontaktseite und macht daraus eine Tabelle.
let
Basis = "https://deine-adresse.de/api/v1",
Schluessel = "3f7c9a2e-4b81-4d6f-9a03-7c5e12f8ab44",
Antwort = Json.Document(
Web.Contents(Basis, [
RelativePath = "contacts",
Query = [ per_page = "500",
fields = "id,lastname,firstname,email,city" ],
Headers = [ Authorization = "Bearer " & Schluessel ]
])
),
Zeilen = Table.FromList(Antwort[data], Splitter.SplitByNothing()),
Spalten = Table.ExpandRecordColumn(Zeilen, "Column1",
{"id", "lastname", "firstname", "email", "city"},
{"Kennung", "Nachname", "Vorname", "E-Mail", "Ort"})
in
Spalten
Mehr als 500 Einträge holst du, indem du die Abfrage in eine Funktion packst und die Seiten durchläufst. Power Query kann das über List.Generate.
6. So liest du Kontakte in Google Sheets
Über Erweiterungen → Apps Script:
Was macht das? Dieses Skript liest die erste Kontaktseite und ersetzt damit den Inhalt des aktiven Tabellenblatts. Verwende dafür ein eigenes, leeres Blatt.
function petworkersKontakte() {
const BASE = 'https://deine-adresse.de/api/v1';
const KEY = '3f7c9a2e-4b81-4d6f-9a03-7c5e12f8ab44';
const antwort = UrlFetchApp.fetch(
BASE + '/contacts?per_page=500&fields=id,lastname,firstname,email,city',
{ headers: { Authorization: 'Bearer ' + KEY } }
);
const daten = JSON.parse(antwort.getContentText()).data;
const blatt = SpreadsheetApp.getActiveSheet();
blatt.clear();
blatt.appendRow(['Kennung', 'Nachname', 'Vorname', 'E-Mail']);
daten.forEach(k => blatt.appendRow([k.id, k.lastname, k.firstname, k.email]));
}
7. So überwachst du die Erreichbarkeit
Der Pfad /api/v1/health eignet sich für jedes Überwachungswerkzeug (Uptime Kuma, Better Stack, Zabbix). Er antwortet mit Status 200 und:
Was macht das? Dieser gekürzte Antwortausschnitt zeigt eine erreichbare Instanz mit erreichbarer Datenbank.
{ "data": { "status": "ok", "database": "ok",
"time": "2026-08-17T22:00:00+02:00" } }
Auch dieser Pfad braucht einen gültigen Schlüssel. Leg dafür am besten einen eigenen an: Stufe „Beratung, Training & Betreuung“, Schreiben erlauben aus, Nur diese Bereiche auf health begrenzt. Das gibt keinen Fachbereich frei; /health benötigt selbst keine Bereichsfreigabe. Allgemeine Systemauskünfte wie /me bleiben ebenfalls erreichbar.
Die kurzen Tabellenbeispiele lesen nur die erste Seite. Bei größeren Beständen musst du page erhöhen und alle Seiten zusammenführen. Prüfe bei einer Überwachung zusätzlich data.status: Auch degraded kann mit HTTP 200 antworten.
Wenn etwas nicht klappt
- 401 unauthorized: Trage den Schlüssel als Bearer-Token oder X-Api-Key ein.
- Die Tabelle bleibt unvollständig: Die Beispiele lesen eine Seite. Lies bei größeren Beständen alle Seiten nacheinander.
- 403 forbidden: Prüfe Berechtigungsstufe und die Freigabe des abgefragten Bereichs.
- Überwachung meldet trotz Fehler erreichbar: Prüfe nicht nur HTTP 200. Kontrolliere auch data.status und data.database.