UiPath Documentation
integration-service
latest
false
Guía de usuario de Integration Service
Importante :
Este contenido se ha traducido mediante traducción automática. Los paquetes de conectores disponibles en Integration Service están traducidos con traducción automática. La localización de contenidos recién publicados puede tardar entre una y dos semanas en estar disponible.

Autenticación HTTP Webhook

Connect UiPath to your webhook provider and configure webhook challenge verification or header-based authentication.

Requisitos previos

Tu proveedor de webhook puede requerir un protocolo de enlace. Consulta la sección Verificación de desafío de Webhook para obtener más información sobre cómo configurar la verificación de desafío.

Dependiendo de dónde crees el desencadenador, la URL del webhook generado aparecerá en la actividad del desencadenador HTTP Webhook o en la página de creación del desencadenador, pero solo después de que la conexión se haya creado correctamente. Para evitar fallos, pegue la URL del webhook en su aplicación después de publicar su flujo de trabajo o el desencadenador se haya creado correctamente en UiPath Orchestrator.

Crear una conexión HTTP Webhook

  1. Selecciona Orchestrator en el lanzador de productos.

  2. Selecciona una carpeta y luego navega a la pestaña Conexiones .

  3. Selecciona Añadir conexión.

  4. Para abrir la página de creación de conexiones, selecciona el conector de la lista. Puedes utilizar la barra de búsqueda para encontrar el conector.

  5. En el campo Para qué aplicación es este webhook , introduce un nombre descriptivo para la aplicación de webhook, algo que facilite la identificación de qué proveedor o integración representa esta conexión. Este valor se convierte en el Identificador de conexión.

  6. (Optional) Configure header-based authentication.

    If you want UiPath to validate every incoming webhook request, from the Authentication Type dropdown select Header Based Authentication, then specify:

    • Header key — the HTTP header the vendor uses to send the credential (for example, X-API-Key or X-API-Secret).
    • Header value — the secret value the vendor sends in that header (for example, a1b2c3d4e5f6789...). This field is masked and stored securely. You can also use a credential asset for this field.

    Configure the same header key and value in the vendor's webhook settings. If the values don't match at runtime, UiPath rejects the request with HTTP 401.

    For more information, see Webhook header authentication.

  7. Configurar la ubicación del desafío
    Elige cómo enviará el proveedor el token de desafío para que UiPath pueda responder correctamente:

    • Sin desafío : el proveedor no requiere un apretón de manos y puedes proceder a conectarte.
    • Parámetro de consulta (por ejemplo, ?challenge=...)
    • Cuerpo JSON (POST con { "challenge": "..." })
    • Encabezado (por ejemplo, X-Hub-Challenge)
  8. Configure la verificación de desafío y conéctese
    If the vendor requires a handshake, enter the challenge verification that matches the vendor's pattern (which field/header/query to read and how to echo/validate it). When configuration is complete, select Connect.

    Where available, select the menu next to a field and choose Use credential asset or Use Orchestrator asset to reference an Orchestrator asset instead of entering the value directly. For more information, see Use credential assets for connections.

Consejo:
  • Utiliza un nombre que incluya el proveedor y el entorno (por ejemplo, Stripe-prod o Slack-staging) para evitar confusiones.
  • Si no estás seguro de qué patrón de desafío utiliza el proveedor, consulta sus documentos de webhook o ejecuta un registro de prueba para inspeccionar la solicitud de handshake.

Verificación de desafío de Webhook

Algunos proveedores requieren que se validen las URL de webhook antes de comenzar a enviar eventos reales. Esto se hace utilizando un mecanismo de desafío-respuesta. Cuando registras un webhook, el proveedor envía una solicitud de desafío especial y el punto final debe responder exactamente como se espera.

El conector HTTP Webhook admite estos flujos de verificación a través del marco de desafíos de Webhook, lo que te permite configurar cómo UiPath debe leer y responder a los desafíos del proveedor.

Compatibilidad con la verificación de desafíos

UiPath admite ambos tipos de comportamientos de webhook de proveedor:

  • Proveedores que no utilizan la verificación de desafío
  • Proveedores que requieren un protocolo de enlace de desafío antes de activar el webhook

Esto garantiza la compatibilidad con proveedores de webhooks simples, así como con aquellos con requisitos de seguridad más avanzados.

Cuando los proveedores no utilizan la verificación por desafío

Muchas aplicaciones simplemente aceptan una URL de webhook y comienzan a entregar eventos de inmediato.
Para estos proveedores:

  • Los usuarios solo necesitan crear o seleccionar una conexión.
  • Copia la URL del webhook.
  • Pégalo en la configuración de webhook del proveedor.

No se requieren pasos adicionales. El webhook se activa tan pronto como el proveedor comienza a enviar eventos.

Este es el escenario más común y sencillo, y UiPath lo gestiona sin problemas.

Cuando los proveedores requieren verificación de desafío

Algunos proveedores envían una solicitud de desafío para verificar la URL del webhook antes de habilitarla.
En estos casos:

  • Los usuarios deben configurar la respuesta de desafío en la conexión HTTP Webhook.
  • UiPath escucha la solicitud de desafío del proveedor.
  • UiPath devuelve automáticamente el valor de desafío correcto en función de la configuración.
  • Una vez que el proveedor valida la respuesta, los eventos normales comienzan a fluir.

Debido a que los proveedores difieren en la forma en que envían el desafío (parámetro de consulta, cuerpo JSON, encabezado, etc.), la configuración de UiPath permite a los usuarios manejar cualquiera de estos patrones.

Esto garantiza la compatibilidad con los proveedores de webhooks que imponen protocolos de enlace de seguridad como Slack, Meta (Facebook/Instagram), Stripe y otros.

Configurar la verificación de desafío

El comportamiento de desafío se configura utilizando cuatro parámetros:

  • Clave de desafío
    Campo/clave que contiene el valor de desafío. Se utiliza para detectar solicitudes de desafío (no debe ser nulo).

  • Ubicación del desafío
    Donde aparece la clave:

    • Cuerpo
    • Parámetro de consulta
    • Encabezado
  • Tipo de contenido de la respuesta al desafío
    Formato de la respuesta devuelta al proveedor:

    • texto/sin formato
    • application/json
  • Formato de respuesta al desafío
    Define qué valor se devuelve (normalmente la propia clave de desafío).
    UiPath extrae el valor del desafío entrante y responde en consecuencia.

Ejemplos de configuración de desafío

Ejemplo genérico
Solicitud entrante
 {
  "challenge": "ABC123"
 }
 {
  "challenge": "ABC123"
 }

Configuración

  • Clave de desafío: challenge != null
  • Ubicación del desafío: cuerpo
  • Tipo de respuesta: text/plain
  • Formato de respuesta: challenge
Respuesta

ABC123

Ejemplo de verificación de desafío de WhatsApp

WhatsApp utiliza el método de desafío basado en parámetros de consulta con hub.challenge.

Configuración
ParámetroValor
Clave de desafíohub.challenge != null
Ubicación del desafíoParámetro de consulta
Tipo de contenido de la respuesta al desafíotext/plain
Formato de respuesta al desafíohub.challenge
Solicitud de proveedor

GET https://your-webhook-url?hub.challenge=1234567890

Respuesta esperada de UiPath
HTTP/1.1 200 OK
Content-Type: text/plain

1234567890
HTTP/1.1 200 OK
Content-Type: text/plain

1234567890

Esto confirma la propiedad y WhatsApp comienza a enviar eventos de webhook reales después.

Resumen: genérico frente a WhatsApp
PasoEjemplo genéricoEjemplo de WhatsApp
Ubicación del desafíoCuerpo/Consulta/EncabezadoConsulta
Formato de claveClave simple (por ejemplo, challenge)Clave con punto ("hub.challenge")
TipoDeRespuestatexto/sin formato o aplicación/jsontexto/sin formato
Valor de respuestaValor de la claveValor de "hub.challenge"
MétodoPUBLICAR u OBTENERSolo OBTENER

Ejemplos por patrón de proveedor

Ejemplo 1: desafío de cuerpo simple con respuesta de texto
Envíos del proveedor

{"challenge":"abc123","type":"url_verification"}

CampoValor
Ubicación del desafíoBody
Clave de desafíochallenge
Tipo de contenido de la respuesta al desafíotext
Formato de respuesta al desafíochallenge

Respuesta: abc123 (texto/sin formato, 200)

Ejemplo 2: desafío de parámetro de consulta con respuesta de texto
Envíos del proveedor

GET /webhook?challenge=CHALLENGE_STRING

CampoValor
Ubicación del desafíoQuery Parameter
Clave de desafíochallenge
Tipo de contenido de la respuesta al desafíotext
Formato de respuesta al desafíochallenge

Respuesta: CHALLENGE_STRING (texto/sin formato, 200)

Ejemplo 3: Desafío de cuerpo con respuesta JSON
Envíos del proveedor

{"challenge":"abc123"}

CampoValor
Ubicación del desafíoBody
Clave de desafíochallenge
Tipo de contenido de la respuesta al desafíojson
Formato de respuesta al desafío{ "challenge": "challenge" }

Respuesta: {"challenge":"abc123"} (application/json, 200)

Ejemplo 4: ruta del cuerpo anidado (por ejemplo, verification.token) con respuesta de texto
Envíos del proveedor

{"verification":{"token":"abc123"}}

CampoValor
Ubicación del desafíoBody
Clave de desafíoverification.token
Tipo de contenido de la respuesta al desafíotext
Formato de respuesta al desafíoverification.token

Respuesta: abc123 (texto/sin formato, 200)

Ejemplo 5: ruta profundamente anidada con respuesta JSON
Envíos del proveedor

{"event":{"challenge":"abc123","type":"verify"}}

CampoValor
Ubicación del desafíoBody
Clave de desafíoevent.challenge
Tipo de contenido de la respuesta al desafíojson
Formato de respuesta al desafío{ "result": "event.challenge" }

Respuesta: {"result":"abc123"} (application/json, 200)

Ejemplo 6: Desafío basado en encabezado (nombre de encabezado con guiones) con respuesta de texto
Envíos del proveedor

POST /webhook x-webhook-challenge: abc123

CampoValor
Ubicación del desafíoHeader
Clave de desafío"x-webhook-challenge"
Tipo de contenido de la respuesta al desafíotext
Formato de respuesta al desafío"x-webhook-challenge"

Respuesta: abc123 (texto/sin formato, 200)

Nota:

El nombre del encabezado contiene guiones, que pueden malinterpretarse como operadores en contextos de análisis. Envolver el identificador entre comillas dobles (por ejemplo, "x-webhook-challenge") garantiza que se trate como un nombre de clave literal. Utiliza siempre comillas dobles alrededor de cualquier identificador que contenga guiones, puntos u otros caracteres especiales.

Ejemplo 7: Detección booleana con diferente clave de respuesta
Envíos del proveedor

{"type":"url_verification","challenge":"abc","token":"legacytoken"}

Quiere detectar por el campo type pero responde con el valor challenge .

CampoValor
Ubicación del desafíobody
Clave de desafíotype == url_verification``
Tipo de contenido de la respuesta al desafíojson
Formato de respuesta al desafío{ "challenge": "challenge" }

Respuesta: {"challenge":"abc"} (application/json, 200)

Webhook header authentication

Header-based authentication lets UiPath validate every incoming webhook request against a shared secret you configured at connection creation. This prevents unauthorized callers from triggering your workflows by posting to your webhook URL.

Cómo funciona

When header-based authentication is enabled on a connection, Integration Service:

  1. Checks every incoming request for the configured header key.
  2. Accepts the event if the header is present and its value matches the stored secret.
  3. Returns HTTP 401 Unauthorized and does not trigger any workflow if the header is absent or its value does not match.

webhook header authentication

Example request that UiPath accepts:

POST /webhook HTTP/1.1
Host: <your-uipath-webhook-url>
X-API-Key: a1b2c3d4e5f6789...
Content-Type: application/json

{ "event": "..." }
POST /webhook HTTP/1.1
Host: <your-uipath-webhook-url>
X-API-Key: a1b2c3d4e5f6789...
Content-Type: application/json

{ "event": "..." }

Example request that UiPath rejects (header missing or value wrong):

HTTP/1.1 401 Unauthorized
HTTP/1.1 401 Unauthorized

Campos de configuración

The following table describes the fields that enable you to configure webhook header authentication on the connection creation screen.

CampoDescripciónEjemplo
Tipo de AutenticaciónEnables or disables header validation for this connection.Header Based Authentication / None
Header KeyName of the HTTP header the vendor sends.X-API-Key, X-API-Secret
Header ValueSecret value the vendor sends in that header. Masked at rest.a1b2c3d4e5f6789...

Vendor compatibility

Header-based authentication only works with vendors that let you configure a custom HTTP header on outbound webhook deliveries.

If you're unsure whether your vendor supports outbound custom headers, check the vendor's webhook documentation.

Updating or rotating the secret

When you edit the connection and change the header value, the new value takes effect immediately for all triggers using that connection. The vendor's configuration must be updated with the new value at the same time, or the vendor's deliveries will fail with HTTP 401 until you do.

Behavior when authentication fails

A request is rejected with HTTP 401 Unauthorized if:

  • The expected header is absent from the request.
  • The header is present but its value does not match the stored secret.

Failed requests are not retried by UiPath, and no trigger event is dispatched. The vendor's own retry behavior (if any) applies.

Authentication failure traces can be viewed in the Traces section. To help protect our systems from DoS attacks, authentication failure traces are limited to 5 per hour.

Notas importantes

  • Header-based authentication is connection-scoped. All triggers created against the same connection share the same header key and value — updating the connection's secret affects every trigger using it.
  • Header-based authentication is independent of challenge verification. Either, both, or neither can be enabled on a connection.
  • The header value is stored encrypted and should be handled with the same care as any other credential.
  • Header names are case-insensitive per the HTTP specification (X-API-Key and x-api-key are equivalent).

¿Te ha resultado útil esta página?

Conectar

¿Necesita ayuda? Soporte

¿Quiere aprender? UiPath Academy

¿Tiene alguna pregunta? Foro de UiPath

Manténgase actualizado