API Dokumentation – Anlegen von Aufgaben / Tasks

API Dokumentation – Aufgaben

Endpunkte unter /api/tasks/ zur Anlage von Aufgaben („Tasks“) über die öffentliche CATAMA-API. Strukturierte Zusatzdaten wie Aufgaben-Typ, Fahrzeugdaten und Kundendaten können als JSON mitgegeben werden.

Authentifizierung
Alle Endpunkte erfordern den Parameter token mit einem gültigen API-Token.
Bei ungültigem Token wird {"status": 0, "message": "Invalid Token"} zurückgegeben.

Endpunkte

  • POST /api/tasks/create — Neue Aufgabe anlegen

Authentifizierung

Akzeptiert werden zwei API-Tokens (in dieser Reihenfolge geprüft):

  • Primär: settings.catama_public_api_token – derselbe Token wie für /api/customerscars/* und /api/invoices/create.
  • Fallback: settings.public_access_token – wird aus Backwards-Compatibility weiterhin akzeptiert.

Den Token finden Sie in der CATAMA-Verwaltung unter Einstellungen → System → CATAMA API Token.

Hinweis: Bei fehlendem oder ungültigem Token antwortet der Server mit HTTP 401 und Body {"data":[],"status":0,"message":"Invalid Token"}.

POST /api/tasks/create

POST /api/tasks/create

Legt eine neue Aufgabe an. Akzeptiert JSON-Body, Form-Daten und Query-Parameter. Deutsche und englische Schlüssel werden parallel unterstützt.

Pflichtparameter

Name Typ Beschreibung
token string API-Token. Pflicht
title
Alias: Titel
string Titel der Aufgabe, darf nicht leer sein. Pflicht
user_id
Alias: userid, userId
integer ID des Bearbeiters aus der users-Tabelle. Pflicht*
externaluid string Permalogin-Token des Users (Alternative zu user_id). Pflicht*
* Mindestens einer der Parameter user_id oder externaluid muss angegeben werden. user_id hat Vorrang.

Optionale Parameter – Inhalt & Klassifizierung

Name Typ Beschreibung
description
Alias: Beschreibung
string Beschreibungstext. optional
task_type
Alias: type, Typ
string Aufgaben-Typ. Erlaubt: create-purchase, contact-customer, mixed, create-offer. optional
priority
Alias: prio, Prio
integer 0 niedrig … 3 hoch. Standard: 1. optional
deadline
Alias: Deadline
string Frist. Mehrere Formate erlaubt – siehe Deadline-Formate. optional
status integer 0 = offen, 1 = erledigt, 2 = in Bearbeitung, 3 = unterbrochen. Standard: 0. optional
category integer Numerische Kategorie. Standard: 0. optional
duration integer Geschätzte Dauer in Minuten. Standard: 0. optional
kanban_identifier string Spalten-Identifier im Kanban. Standard: _todo. optional
board_id integer Ziel-Board. Standard: 1. optional

 

Optionale Parameter – Verknüpfungen

Name Typ Beschreibung
customer_id
Alias: customerid
integer Existierende Kunden-ID. Wird gegen customers geprüft. optional
mobile_id
Alias: mobileid
integer Existierende Bestandsfahrzeug-ID (siehe Kundenfahrzeugdaten-API). Wird gegen clientmobiles geprüft. optional
document_id
Alias: documentid
integer Belegzuordnung. optional
document_type
Alias: documentype, documenttype
string Belegtyp, z. B. invoice, article. optional
assigned_user_ids
Alias: assignedUserIds
array | csv | json Mehrere Bearbeiter. Akzeptiert JSON-Array, CSV-String oder Form-Array. Ungültige IDs werden still verworfen. optional

Optionale Parameter – Zusatzdaten & Tracking

Name Typ Beschreibung
vehicledata
Alias: fahrzeugDaten, vehicle_data
object | json Freie Fahrzeugdaten als JSON. Siehe Beispiele. optional
customerdata
Alias: kundenDaten, customer_data
object | json Freie Kundendaten als JSON. optional
source string Herkunft des Requests, z. B. n8n, zapier. Standard: api. optional
external_reference
Alias: externalreference
string Externe Referenz (CRM-Vorgang, Ticket-ID …). Indexiert. optional
extra
Alias: metadata
object | json Beliebige weitere Metadaten. optional

Beispiel-Aufruf – minimal

cURL

curl -X POST https://catama-instanz.de/api/tasks/create \
  -H "Content-Type: application/json" \
  -d '{
    "token": "DEIN_API_TOKEN",
    "title": "Kunde Müller zurückrufen",
    "user_id": 2
  }'

Beispiel-Aufruf – vollständig

cURL

curl -X POST https://catama-instanz.de/api/tasks/create \
  -H "Content-Type: application/json" \
  -d '{
    "token": "DEIN_API_TOKEN",
    "title": "Ankaufangebot für Golf VII vorbereiten",
    "description": "Kunde möchte Inzahlungnahme. Bewertung anfertigen.",
    "user_id": 2,
    "assigned_user_ids": [2, 11, 12],
    "task_type": "create-purchase",
    "priority": 2,
    "deadline": "2026-12-31",
    "duration": 30,
    "status": 0,
    "kanban_identifier": "_todo",
    "board_id": 1,
    "customer_id": 200,
    "mobile_id": 1085,
    "source": "n8n",
    "external_reference": "CRM-2026-04711",
    "vehicledata": {
      "plate": "B-AB 1234",
      "vin": "WVWZZZ3CZWE123456",
      "model": "Golf VII",
      "mileage": 85000
    },
    "customerdata": {
      "company": "Muster GmbH",
      "forename": "Max",
      "lastname": "Mustermann"
    },
    "extra": {
      "campaign": "frühjahrs-aktion-2026"
    }
  }'

Beispiel-Aufruf – Form-Post mit deutschen Aliassen

cURL

curl -X POST https://catama-instanz.de/api/tasks/create \
  -d "token=DEIN_API_TOKEN" \
  -d "Titel=Angebot prüfen" \
  -d "Beschreibung=Bitte Angebot 2026-04711 freigeben" \
  -d "user_id=2" \
  -d "Typ=create-offer" \
  -d "Prio=3" \
  -d "Deadline=15.09.2026"

Erfolgreiche Antwort

{
  "data": {
    "task_id": 29387,
    "user_id": 2,
    "task_type": "create-purchase",
    "customer_id": 200,
    "mobile_id": 1085,
    "document_id": null,
    "document_type": null,
    "board_id": 1,
    "kanban_identifier": "_todo",
    "priority": 2,
    "status": 0,
    "deadline": 1798761600,
    "assigned_user_ids": [2, 11, 12],
    "source": "n8n",
    "external_reference": "CRM-2026-04711",
    "created_at": 1777555600
  },
  "status": 1,
  "message": "Success",
  "task_id": 29387
}

Fehler – Beispiele

{ "status": 0, "message": "Invalid Token" }              // HTTP 401
{ "status": 0, "message": "title is required" }          // HTTP 400
{ "status": 0, "message": "user_id or externaluid is required" } // HTTP 400
{ "status": 0, "message": "Invalid task_type. Allowed: create-purchase, contact-customer, mixed, create-offer" } // HTTP 400
{ "status": 0, "message": "User not found" }             // HTTP 404
{ "status": 0, "message": "Customer not found" }         // HTTP 404
{ "status": 0, "message": "Car not found" }              // HTTP 404
{ "status": 0, "message": "Failed to create task" }      // HTTP 500

Aufgaben-Typ (task_type)

Strukturierter, semantischer Aufgaben-Typ. Wird zentral in der Tabelle tasks_api_metadata abgelegt und ist später per SQL filterbar. Erlaubt sind ausschließlich:

Wert Bedeutung
create-purchase Aufgabe zum Anlegen eines Ankaufs / einer Bestellung.
contact-customer Aufgabe für eine Kundenkontaktaufnahme (Anruf, E-Mail).
mixed Mischvorgang / mehrere Schritte kombiniert.
create-offer Aufgabe zum Erstellen eines Angebots.
Hinweis: Wird ein Wert außerhalb dieser Liste übergeben, antwortet der Endpunkt mit HTTP 400 und der Meldung Invalid task_type.

Deadline-Formate

Der Parameter deadline akzeptiert mehrere Formate:

Format Beispiel Hinweis
Unix-Timestamp 1798761600 Sekunden seit 1970-01-01 (empfohlen, eindeutig).
ISO 8601 – Datum 2026-12-31 Datum in Server-Zeitzone.
ISO 8601 – Datum & Zeit 2026-12-31 14:30:00
2026-12-31T14:30:00Z
Mit Uhrzeit, Z-Suffix oder Offset.
Deutsches Datum 15.09.2026 Format d.m.Y.
Monat / Jahr 09/2026 Wird auf den 1. des Monats gesetzt.

Wird kein Wert übergeben, speichert das System 2147483647 (= „kein Limit“).

Fahrzeug- und Kundendaten als JSON

Die Parameter vehicledata und customerdata nehmen beliebige strukturierte JSON-Objekte entgegen. Die Inhalte werden in der Tabelle tasks_api_metadata als JSON abgelegt (siehe Datenablage) und sind per SQL auswertbar.

Beide Parameter akzeptieren entweder ein JSON-Objekt (innerhalb eines JSON-Bodys) oder einen serialisierten JSON-String (bei Form-Posts).

Beispiel: Fahrzeugdaten

{
  "plate": "B-AB 1234",
  "vin": "WVWZZZ3CZWE123456",
  "fabricator": "Volkswagen",
  "model": "Golf VII",
  "registration_date": "2019-03-15",
  "mileage": 85000,
  "intern_id": "KFZ-001"
}

Beispiel: Kundendaten

{
  "company": "Muster GmbH",
  "forename": "Max",
  "lastname": "Mustermann",
  "email": "max@muster.de",
  "phone": "+49 30 12345678",
  "street": "Beispielstr. 1",
  "zip": "10115",
  "city": "Berlin"
}
Empfehlung: Existiert der Kunde / das Fahrzeug bereits im System, geben Sie zusätzlich customer_id bzw. mobile_id an. Die JSON-Felder sind primär für freie Daten oder zusätzlichen Kontext gedacht.

Response-Felder im Detail

Die vollständige Liste aller Response-Felder finden Sie aufklappbar oben unter POST /api/tasks/create → Erfolgreiche Antwort → „Alle Felder im Response-Objekt anzeigen“.

Fehler-Codes

Alle Fehlerantworten haben die Form {"data":[],"status":0,"message":"…"}.

HTTP Message Ursache
401 Invalid Token Kein oder ungültiger Token.
400 title is required title fehlt oder ist leer.
400 user_id or externaluid is required Weder user_id noch externaluid übergeben.
400 Invalid task_type task_type nicht in der Whitelist.
404 User not found User existiert nicht.
404 Customer not found customer_id existiert nicht in customers.
404 Car not found mobile_id existiert nicht in clientmobiles.
500 Database connection failed Interner Fehler – DB nicht erreichbar.
500 Failed to create task Insert-Query ist fehlgeschlagen.

Datenablage

Ein erfolgreicher Request schreibt in mehrere Tabellen:

Tabelle Inhalt
tasks Hauptdatensatz: userid, title, description, priority, status, deadline, customerid, mobileid, documentid, documentype, kanban_identifier, created_at, created_by, duration, category.
tasks_boards_rel Zuordnung Aufgabe → Kanban-Board.
tasks_users_rel Mehrfach-Bearbeiter aus assigned_user_ids (1 Zeile pro User).
tasks_api_metadata Strukturierte API-Zusatzdaten (1:1 zu tasks über task_id): task_type, vehicle_data (JSON), customer_data (JSON), source, external_reference, extra (JSON).
Hinweis: JSON-Daten werden strukturiert in tasks_api_metadata gespeichert – nicht mehr als angehängter Text in description. Damit sind sie per SQL filterbar und reportingfähig.

Ähnliche Artikel