Anlegen und aktualisieren
Zuletzt aktualisiert 16 August 2026

Schreibvorgänge haben denselben Aufbau wie Lesevorgänge: JSON hinein, JSON heraus, und der Datensatz kommt unter seiner Einzahlform zurück, sodass Sie mit dem Ergebnis sofort weiterarbeiten können.
Anlegen
POST auf /new, mit den Feldern, die Sie setzen wollen:
curl -X POST "https://ihre-subdomain.flexie.io/api/leads/new" \
-H "apikey: IHR_API_SCHLUESSEL" \
-H "Content-Type: application/json" \
-d '{
"first_name": "Ada",
"last_name": "Lovelace",
"email": "ada@example.com",
"phone": "+355 69 000 0000"
}'
201 Created, und der ganze Datensatz kommt zurück, samt Id und den Feldern, die Flexie für Sie gefüllt hat:
{
"lead": {
"id": "32759",
"first_name": "Ada",
"last_name": "Lovelace",
"email": "ada@example.com",
"owner_id": 2,
"is_published": 1,
"date_added": "2026-08-16T20:41:44+02:00",
"created_by": 2,
"created_by_user": "Eges Tarazhi"
}
}
Behalten Sie die id. Über sie sprechen Sie den Datensatz von nun an an.
Felder, die Sie nicht senden, bleiben auf ihren Standardwerten, Sie müssen nie den ganzen Datensatz senden. Benutzerdefinierte Felder stehen im selben flachen Objekt, angesprochen über ihren Alias.
Aktualisieren
PUT oder PATCH auf die URL des Datensatzes. Senden Sie nur, was sich ändert:
curl -X PATCH "https://ihre-subdomain.flexie.io/api/leads/32759" \
-H "apikey: IHR_API_SCHLUESSEL" \
-H "Content-Type: application/json" \
-d '{"last_name": "Byron"}'
200 OK, mit dem aktualisierten Datensatz:
{ "lead": { "id": "32759", "first_name": "Ada", "last_name": "Byron", … } }
Beide Verben werden auf diesem Pfad angenommen und verhalten sich gleich: Felder, die Sie weglassen, bleiben unangetastet.
Löschen
curl -X DELETE "https://ihre-subdomain.flexie.io/api/leads/32759" \
-H "apikey: IHR_API_SCHLUESSEL"
204 No Content: ein leerer Rumpf, weil es nichts mehr zu beschreiben gibt. Fragen Sie den Datensatz danach ab, kommt 404.
Über Ihre eigene Referenz arbeiten
Die meisten Integrationen kennen die Ids von Flexie nicht. Sie kennen ihre eigenen: eine Bestellnummer, einen Kundencode, eine E-Mail-Adresse. Flexie unterstützt das direkt, Sie müssen also keine Zuordnungstabelle pflegen.
Markieren Sie das Feld zunächst als eindeutigen Bezeichner an der Entität (Einstellungen → Anpassung → die Felder der Entität). Erst das macht die beiden folgenden Aufrufe dafür zulässig.
Den Datensatz finden
curl -X POST "https://ihre-subdomain.flexie.io/api/leads/identify" \
-H "apikey: IHR_API_SCHLUESSEL" \
-d "unique_field=email&unique_field_value=ada@example.com"
{ "lead": { "id": "32760", "first_name": "Ada", … } }
Ihn aktualisieren, ohne seine Id zu kennen
PUT, PATCH oder POST auf /edit, ohne Id in der URL. Nehmen Sie das eindeutige Feld in den Rumpf auf, damit Flexie den Datensatz finden kann, dazu alles, was Sie ändern:
curl -X PATCH "https://ihre-subdomain.flexie.io/api/leads/edit" \
-H "apikey: IHR_API_SCHLUESSEL" \
-H "Content-Type: application/json" \
-d '{
"email": "ada@example.com",
"last_name": "Byron",
"phone": "+355 69 111 1111"
}'
{ "lead": { "id": "32760", "last_name": "Byron", … } }
Das ist ein Aktualisieren, kein Anlegen-oder-Aktualisieren. Passt kein Datensatz zum eindeutigen Wert, bekommen Sie
404 Item was not found., es wird nichts angelegt. Für „anlegen, falls nicht vorhanden" rufen Sie zuerst/editauf und weichen bei einem 404 auf/newaus:
# Pseudocode
PATCH /api/leads/edit {email, …} # 200 -> fertig
└─ bei 404 ──▶ POST /api/leads/new {email, …}
Dasselbe gilt für identify: Ein unbekannter Wert ist ein 404, kein leeres Ergebnis.
Notizen an einem Datensatz
Notizen hängen an dem, wozu sie gehören:
curl -X POST "https://ihre-subdomain.flexie.io/api/notes/lead/32759" \
-H "apikey: IHR_API_SCHLUESSEL" \
-H "Content-Type: application/json" \
-d '{"text": "Zurückgerufen, möchte ein Angebot über 40 Plätze."}'
Und um die Notizen eines Datensatzes zu lesen:
curl "https://ihre-subdomain.flexie.io/api/leads/32759/notes" -H "apikey: IHR_API_SCHLUESSEL"
Benutzerdefinierte Datensätze
Identisch, mit Ihrem Tabellennamen im Pfad, klein geschrieben mit Unterstrichen, genau so, wie er in Flexie gesetzt ist:
# anlegen
curl -X POST "https://ihre-subdomain.flexie.io/api/ce/projects/new" \
-H "apikey: IHR_API_SCHLUESSEL" -H "Content-Type: application/json" \
-d '{"first_name":"Maria","course":"Advanced"}'
# aktualisieren
curl -X PATCH "https://ihre-subdomain.flexie.io/api/ce/projects/501" \
-H "apikey: IHR_API_SCHLUESSEL" -H "Content-Type: application/json" \
-d '{"course":"Expert"}'
# löschen
curl -X DELETE "https://ihre-subdomain.flexie.io/api/ce/projects/501" \
-H "apikey: IHR_API_SCHLUESSEL"
Wem die Änderung zugeschrieben wird
Jeder Schreibvorgang wird dem Benutzer zugeschrieben, zu dem die Zugangsberechtigung gehört: created_by, modified_by und die Historie des Datensatzes zeigen alle diese Person. Deshalb lohnt es sich, jeder Integration einen eigenen OAuth-Client zu geben, der als eigens dafür angelegter Benutzer handelt: Ein halbes Jahr später hat „wer hat dieses Feld geändert?" dann eine brauchbare Antwort.
Berechtigungen gelten genauso. Eine Anfrage kann nur anlegen, ändern oder löschen, was ihr Benutzer auch in der Oberfläche anlegen, ändern oder löschen könnte. Ein Schreibvorgang, den der Benutzer nicht ausführen darf, kommt als Berechtigungsfehler zurück, nicht als stillschweigendes Nichtstun.
Ein vollständiges Beispiel: eine Bestellung nach Flexie übernehmen
Nehmen Sie eine Bestellung aus Ihrem eigenen System, stellen Sie sicher, dass es den Kunden gibt, und hängen Sie eine Notiz an:
# 1. Gibt es diesen Kunden schon?
curl -X POST "https://ihre-subdomain.flexie.io/api/leads/identify" \
-H "apikey: IHR_API_SCHLUESSEL" \
-d "unique_field=email&unique_field_value=buyer@example.com"
# 200 -> die zurückgegebene Id verwenden
# 404 -> anlegen:
curl -X POST "https://ihre-subdomain.flexie.io/api/leads/new" \
-H "apikey: IHR_API_SCHLUESSEL" -H "Content-Type: application/json" \
-d '{"first_name":"Sam","last_name":"Rivera","email":"buyer@example.com"}'
# 2. Festhalten, was passiert ist
curl -X POST "https://ihre-subdomain.flexie.io/api/notes/lead/32761" \
-H "apikey: IHR_API_SCHLUESSEL" -H "Content-Type: application/json" \
-d '{"text":"Bestellung #4417 aufgegeben, 3 Positionen, 240 EUR."}'
Lassen Sie das für denselben Kunden erneut laufen, bekommen Sie denselben Lead zurück statt eines Duplikats, weil Schritt 1 über die E-Mail-Adresse abgeglichen hat.