Ein Webhook aus SeaTable hat eine eindeutig festgelegte Struktur. Dies ermöglicht die einfache Verarbeitung des Ereignisses durch eine beliebige Programmiersprache. Diese Artikel stellt die allgemeine Struktur und die möglichen Werte vor.

Wenn für eine Base ein Webhook eingerichtet wird, wird für jede Änderung an den Inhalten der Base ein HTTP-Request verschickt. Somit triggern z.B. die folgende Änderungen einen Webhook:

  • Eine neue Zeile wird hinzugefügt oder dupliziert.
  • Eine Zeile wird gelöscht.
  • Ein Zeileninhalt wird verändert.
{
  "event": "update",
  "data": {
    "dtable_uuid": "fae0a3a42ba94df88e8303fd385e37de",
    "row_id": "Fk-i7xZGS5iA5aSvaG5HAA",
    "op_user": "4bc9a7c79c5942c5b6238413f2132bea@auth.local",
    "op_type": "insert_row",
    "op_time": 1649922777.279,
    "table_id": "9g8f",
    "table_name": "Opportunities",
    "row_name": "",
    "row_data": []
  }
}
{
  "event": "update",
  "data": {
    "dtable_uuid": "fae0a3a42ba94df88e8303fd385e37de",
    "row_id": "QoNno3QiTF26sxmG1sl3_g",
    "op_user": "4bc9a7c79c5942c5b6238413f2132bea@auth.local",
    "op_type": "modify_row",
    "op_time": 1649929622.589,
    "table_id": "9g8f",
    "table_name": "Opportunities",
    "row_name": "",
    "row_data": [{
      "column_key": "589r",
      "column_name": "Prio",
      "column_type": "single-select",
      "column_data": {
        "options": [{
          "name": "++",
          "color": "#F4667C",
          "textColor": "#FFFFFF",
          "id": "381992"
        },
        {
          "name": "+",
          "color": "#FBD44A",
          "textColor": "#FFFFFF",
          "id": "830278"
        }
      ]},
      "value": "381992",
      "old_value": ""
    }]
  }
}
{
  "event": "update",
  "data": {
    "dtable_uuid": "fae0a3a42ba94df88e8303fd385e37de",
    "row_id": "QoNno3QiTF26sxmG1sl3_g",
    "op_user": "4bc9a7c79c5942c5b6238413f2132bea@auth.local",
    "op_type": "delete_row",
    "op_time": 1649929650.668,
    "table_id": "9g8f",
    "table_name": "Opportunities",
    "row_name": "",
    "row_data": []
  }
}

Der gesendete Requests eines Webhooks enthält immer die Werte “event” und “data”. Der Wert “event” ist aktuell immer “update”. In der Zukunft kann es sein, dass hier noch weitere Werte hinzukommen.

Der Wert “data” enthält ein Array mit weiteren Elementen. Diese sind der folgenden Tabelle aufgeführt.:

Wert Typ Beispiel
dtable_uuid String (32) fae0a3a42ba94df88e8303fd385e37de
row_id String (22) QoNno3QiTF26sxmG1sl3_g
op_user String (32) + “auth.local” 4bc9a7c79c5942c5b6238413f2132bea@auth.local
op_type insert_row, delete_row, modify_row insert_row
op_time Timestamp 1649929650.668
table_id String (4) 9g8f
table_name String Tasks
row_name String
row_data Object { … }
op_app String API token name

Ausgestattet mit dieser Struktur können Sie nun Ihre eigene Webhook Schnittstelle entwickeln.