SocialHub.AI
Entwicklerzentrum · Offene Erweiterbarkeit

Benutzerdefinierte Objekte API

Ein Arbeitsbereich kann seine eigenen strukturierten Geschäftsobjekte definieren – Reparaturaufträge, Termine, Beschwerden – mit Feldern, Datensätzen, Listen-/Formular-Benutzeroberfläche und Segmentierung, alles ohne Code. Mit diesem API können Ihre Integrationen die Schemata dieser Objekte lesen und deren Datensätze lesen oder schreiben. Das Objekt wird zuerst in der App definiert; Das API wirkt gegen das, was bereits existiert.

Schritt 1 – entdecken

Liste die object-Typen auf und lies anschließend deren Schema.

Authentifizieren Sie sich mit einem Bearer fl_live_-Schlüssel, der objects:read enthält. GET /api/v2/objects gibt die object-Typen zurück, die dieser Arbeitsbereich bereitstellt – es werden nur veröffentlichte und API-sichtbare Objekte zurückgegeben; Entwürfe und API-versteckte Objekte werden niemals offengelegt. GET /api/v2/objects/{type} gibt das selbstbeschreibende Feldschema (Schlüssel, Typ, Optionen, erforderlich) eines object zurück, sodass Sie ein Formular rendern oder Datensätze zuordnen können, ohne etwas fest zu codieren. Ein unbekannter, Entwurfs-, versteckter oder arbeitsbereichsübergreifender Typ gibt 404 zurück.

# what object types exist here?
curl https://flash.socialhub.ai/api/v2/objects \
  -H "Authorization: Bearer fl_live_..."
# { "data": [ { "type": "repair_jobs", "label": "Repair Jobs", ... } ] }

# what does one look like?
curl https://flash.socialhub.ai/api/v2/objects/repair_jobs \
  -H "Authorization: Bearer fl_live_..."
# { "data": {
#     "type": "repair_jobs", "label": "Repair Jobs",
#     "fields": [
#       { "key": "cf_status",  "type": "enum", "required": true,
#         "options": ["Received","In Progress","Completed"] },
#       { "key": "cf_item",    "type": "text" },
#       { "key": "member_ref", "type": "member_ref" }
#     ]
# } }
Schritt 2 – Datensätze lesen

Listen, Filter, Sortierung & Paginierung

GET /api/v2/objects/{type}/records gibt Datensätze für object (Bereich objects:read) zurück. Seitenansicht mit limit (max. 200) und offset; Sortierung mit sortBy (created_desc, created_asc, updated_desc, title_asc); Freitextfeld mit search; Filterung nach Element mit memberId; Filterung nach beliebigen Feldern mit f_<fieldKey>=<value>. Ein einzelner Datensatz wird als GET /api/v2/objects/{type}/records/{recordId} dargestellt.

curl "https://flash.socialhub.ai/api/v2/objects/repair_jobs/records\
?f_cf_status=In%20Progress&sortBy=updated_desc&limit=50" \
  -H "Authorization: Bearer fl_live_..."

# { "data": [ { "id": "rec_...", "data": { "cf_status": "In Progress",
#               "cf_item": "Sole replacement", "member_ref": "mbr_..." } } ],
#   "total": 12 }
Schritt 3 – Datensätze schreiben

Erstellen, aktualisieren und löschen

Schreibvorgänge benötigen den Bereich objects:write. Das data-Objekt wird gegenüber dem Feldschema des Objekts validiert – alle erforderlichen Felder, Typen, Aufzählungsoptionen und Mitgliedsreferenzen werden überprüft und unbekannte Schlüssel werden abgelehnt. Vor jedem Schreibvorgang befindet sich ein Fail-Closed-Pro-Key-Wächter für die Schreibrate, sodass ein durchgesickerter Schlüssel die Tabelle nicht überfluten kann.

# create
curl -X POST https://flash.socialhub.ai/api/v2/objects/repair_jobs/records \
  -H "Authorization: Bearer fl_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "data": {
    "cf_status": "Received",
    "cf_item": "Sole replacement",
    "member_ref": "mbr_..."
  } }'
# 201 { "data": { "id": "rec_...", "data": { ... } } }

PATCH …/records/{recordId} ist standardmäßig eine Teilaktualisierung (Feld für Feld zusammengeführt, sodass sich gleichzeitige Aktualisierungen nicht gegenseitig überschreiben). Senden Sie ein Feld als null, um es zu entfernen, oder als { "replace": true }, um den gesamten Datensatz zu überschreiben. DELETE …/records/{recordId} führt zu einem vorläufigen Löschen.

# partial update — only touch cf_status
curl -X PATCH https://flash.socialhub.ai/api/v2/objects/repair_jobs/records/rec_... \
  -H "Authorization: Bearer fl_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "data": { "cf_status": "Completed" } }'

# delete
curl -X DELETE https://flash.socialhub.ai/api/v2/objects/repair_jobs/records/rec_... \
  -H "Authorization: Bearer fl_live_..."