SocialHub.AI
Centre de développement · Extensibilité ouverte

Objets personnalisés API

Un espace de travail peut définir ses propres objets métier structurés (tâches de réparation, rendez-vous, réclamations) avec des champs, des enregistrements, une interface utilisateur de liste/formulaire et une segmentation, le tout sans code. Ce API permet à vos intégrations de lire les schémas de ces objets et de lire ou d'écrire leurs enregistrements. L'objet est d'abord défini dans l'application ; le API fonctionne contre ce qui existe déjà.

Étape 1 : découverte

Listez les types object, puis consultez leur schéma

Authentifiez-vous avec un Bearer fl_live_ détenir les clés objects:read. GET /api/v2/objects renvoie le object types que cet espace de travail expose — uniquement publié, API-visible Les objets sont renvoyés ; brouillons et API-Les objets cachés ne fuient jamais. GET /api/v2/objects/{type} renvoie un objectLe schéma de champ auto-descriptif (clé, type, options, obligatoire) permet de générer un formulaire ou de mapper des enregistrements sans programmation en dur. Un type inconnu, brouillon, masqué ou inter-espaces de travail est renvoyé. 404.

# 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" }
#     ]
# } }
Étape 2 — Lire les enregistrements

Lister, filtrer, trier et paginer

GET /api/v2/objects/{type}/records renvoie les enregistrements d'un object (portée objects:read). Page avec limit (max. 200) et offset ; Ordre avec sortBy (created_desc, created_asc, updated_desc, title_asc) ; texte libre search ; filtrage par membre avec memberId ; et filtrage de n’importe quel champ avec f_<fieldKey>=<value>. Un enregistrement unique est GET /api/v2/objects/{type}/records/{recordId}.

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 }
Étape 3 — Enregistrement des données

Créer, mettre à jour et supprimer

Les écritures nécessitent la portée objects:write. L'objet data est validé par rapport au schéma de champ de l'objet : les champs obligatoires, les types, les options d'énumération et les références de membre sont tous vérifiés et les clés inconnues sont rejetées. Une protection de taux d'écriture par clé, fermée en cas d'échec, se trouve devant chaque écriture, de sorte qu'une clé divulguée ne peut pas inonder la table.

# 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} est une mise à jour partielle par défaut (fusion champ par champ, afin que les correctifs simultanés ne s’écrasent pas les uns les autres). Envoyez un champ sous la forme null pour le supprimer, ou { "replace": true } pour écraser l'enregistrement entier. DELETE …/records/{recordId} effectue une suppression logique.

# 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_..."