Un webhook de SeaTable tiene una estructura claramente definida. Esto permite que el evento sea procesado fácilmente por cualquier lenguaje de programación. Este artículo presenta la estructura general y los valores posibles.

Si se configura un webhook para una base, se envía una petición HTTP por cada cambio en el contenido de la base. Así, por ejemplo, los siguientes cambios activan un webhook:

  • Se añade o duplica una nueva fila.
  • Se borra una línea.
  • Se modifica el contenido de una línea.
{
  "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": []
  }
}

La petición enviada por un webhook contiene siempre los valores “evento” y “datos”. Actualmente, el valor “evento” es siempre “actualización”. En el futuro, es posible que se añadan aquí otros valores.

El valor “datos” contiene una matriz con más elementos. Estos se enumeran en la siguiente tabla:

Valor Tipo Ejemplo
dtable_uuid Cadena (32) fae0a3a42ba94df88e8303fd385e37de
fila_id Cuerda (22) QoNno3QiTF26sxmG1sl3_g
op_usuario Cadena (32) + “auth.local” 4bc9a7c79c5942c5b6238413f2132bea@auth.local
tipo_op insertar_fila, delete_row, modificar_fila insertar_fila
op_time Marca de tiempo 1649929650.668
table_id Cuerda (4) 9g8f
nombre_tabla Cadena Tareas
nombre_fila Cadena
datos_fila Objeto { … }
op_app Cadena Nombre del token de API

Equipado con esta estructura, ahora puede desarrollar su propia interfaz Webhook.