Ir al contenido

Webhooks de carpeta

Reciba automáticamente en una carpeta específica los archivos enviados desde sistemas externos. Cada carpeta obtiene una URL de recepción única y los datos enviados a esa URL se guardan en la carpeta.


Antes de comenzar

Crear un webhook en una carpeta

  1. Seleccione el icono de configuración (⚙️) junto a la carpeta que recibirá el webhook. Configuración de la carpeta
  2. En la pestaña Webhook inbound, seleccione Add.
  3. Seleccione un método de autenticación y una política de conflictos. Ambas opciones se explican a continuación. Crear un webhook
  4. Seleccione Create para generar la URL de recepción única de la carpeta (Endpoint URL). Si seleccionó Secure, también se genera un Signature Secret (secreto de firma). Estos valores solo se muestran una vez. Cópielos ahora en un lugar seguro.Webhook creado con autenticación Simple
  5. Configure el sistema externo con la URL de recepción y el ejemplo que aparecen en pantalla. Consulte «Seleccionar un método de autenticación» para ver ejemplos de solicitudes.
  6. Las carpetas con un webhook muestran el icono .

Seleccionar un método de autenticación

Al crear un webhook, seleccione Simple o Secure.

AutenticaciónFuncionamiento
SimpleLa URL de recepción es la propia credencial. Envíe una solicitud POST a la URL emitida sin una firma adicional para guardar el archivo.
SecureCada solicitud debe incluir una firma HMAC en los encabezados X-Webhook-Timestamp, X-Webhook-Nonce y X-Webhook-Signature. Las solicitudes sin firma se rechazan aunque la URL de recepción haya quedado expuesta.

Un webhook Simple acepta solicitudes utilizando únicamente su URL.

# Subir un archivo mediante multipart
curl -i -X POST "https://<url-de-recepcion>?filename=photo.jpg" \
  -F "file=@./photo.jpg"

Un webhook Secure incluye en la firma un hash SHA-256 de todo el cuerpo de la solicitud multipart, incluidos los límites y los encabezados de las partes. Configuración de un webhook Secure

# Subir un archivo mediante multipart (con firma HMAC)
TS=$(date +%s)
NONCE=$(cat /proc/sys/kernel/random/uuid)
BOUNDARY="------------------------$(cat /proc/sys/kernel/random/uuid)"
TMP=$(mktemp /tmp/multipart.XXXXXX)

# Construir primero el cuerpo multipart sin procesar y calcular después su hash.
printf -- --%s$'\r\n' "$BOUNDARY" > "$TMP"
printf 'Content-Disposition: form-data; name="file"; filename="photo.jpg"' >> "$TMP"
printf $'\r\n' >> "$TMP"
printf 'Content-Type: application/octet-stream' >> "$TMP"
printf $'\r\n\r\n' >> "$TMP"
cat ./photo.jpg >> "$TMP"
printf $'\r\n' >> "$TMP"
printf -- --%s--$'\r\n' "$BOUNDARY" >> "$TMP"

BODY_SHA=$(sha256sum "$TMP" | awk '{print $1}')
SIG=$(printf 'POST\n<ruta-de-recepcion>\n%s\n%s\n%s' "$TS" "$NONCE" "$BODY_SHA" \
  | openssl dgst -sha256 -hmac "$SECRET" -binary | xxd -p -c 256)

curl -i -X POST "https://<url-de-recepcion>?filename=photo.jpg" \
  -H "Content-Type: multipart/form-data; boundary=$BOUNDARY" \
  -H "X-Webhook-Timestamp: $TS" \
  -H "X-Webhook-Nonce: $NONCE" \
  -H "X-Webhook-Signature: sha256=$SIG" \
  --data-binary @"$TMP"

rm -f "$TMP"

Seleccionar una política de conflictos

Elija qué hacer cuando se reciba otro archivo con el mismo nombre. La política se selecciona al crear el webhook y puede cambiarse después en la misma pantalla seleccionando Apply.

PolíticaFuncionamiento
RejectNo guarda el nuevo archivo si ya existe otro con el mismo nombre.
OverwriteSustituye el archivo existente por el nuevo.
RenameConserva el archivo existente y guarda el nuevo con un nombre diferente.

Especificar un nombre de archivo

Especifique el nombre del archivo que se cargará de una de estas dos formas:

  • Parámetro de consulta: ?filename=report.json
  • Encabezado HTTP: X-Webhook-Filename: report.json

Formas de especificar un nombre de archivo

Guardar en subcarpetas

Los archivos recibidos mediante un webhook se guardan directamente en la carpeta donde se creó. Para guardarlos en sus subcarpetas añadiendo una subruta al nombre del archivo, active Subfolders en el webhook.

  1. Expanda el webhook que desea configurar en la lista de webhooks.
  2. Seleccione Allowed en Subfolders.
  3. Seleccione Apply.

Especifique en el nombre del archivo una ruta relativa a la carpeta del webhook. Las carpetas que no existan se crearán automáticamente.

  • Parámetro de consulta: ?filename=releases/1.0/a.zip
  • Encabezado HTTP: X-Webhook-Filename: releases/1.0/a.zip
ReglaDescripción
Profundidad y longitudPuede utilizar hasta 8 niveles de subcarpetas y cada nombre puede tener hasta 255 bytes.
Rutas no permitidasSe rechazan los nombres que contienen .., las rutas que comienzan o terminan con /, las barras invertidas (\) y los nombres de carpeta que comienzan con ..
Dónde especificar la rutaEspecifique la subruta solo en el parámetro de consulta o en el encabezado. No se usan las carpetas escritas en el nombre de una parte de archivo multipart/form-data.

Revisar los datos recibidos

Los datos enviados desde sistemas externos se acumulan como archivos en la carpeta. Abra la carpeta para revisar los elementos recibidos.

Pausar o eliminar un webhook

  • Puede pausar o eliminar un webhook desde la carpeta. Pase el cursor sobre un webhook de la lista para mostrar los botones Pause y Delete. Botones para pausar y eliminar en la lista de webhooks
  • Abra la pestaña My Webhooks de Account settings para ver todas las carpetas en las que configuró un webhook. También puede pausar o eliminar webhooks desde esta lista.

Mis webhooks

Casos de uso

  • Supervisión de sitios web y pantallas: recopile automáticamente capturas periódicas desde Zapier, n8n, Make o herramientas similares para registrar los cambios.
  • Almacenamiento de resultados de automatizaciones: guarde informes, facturas, archivos PDF y otros resultados de herramientas RPA o de automatización sin intervención manual.
  • Recopilación de archivos adjuntos de formularios: reúna en una sola carpeta los archivos enviados mediante Google Forms, Typeform y servicios similares.
  • Artefactos de compilación y despliegue: reciba los artefactos de compilación y los informes de pruebas generados por una canalización de CI/CD.

Documentos relacionados