{"section":"tutorials","requestedLocale":"es","requestedSlug":"call-webhook-como-hacer-llamadas-a-sistemas-externos","locale":"es","slug":"call-webhook-como-hacer-llamadas-a-sistemas-externos","path":"docs/es/tutorials/weni-by-vtex/flujos/call-webhook-como-hacer-llamadas-a-sistemas-externos.md","branch":"main","content":"La sigla **API** corresponde a las palabras en inglés **\"\" Application Programming Interface\"\"**. En español, \"\"Interfaz de Programación de Aplicaciones\"\". Son una forma de **integrar sistemas** , posibilitando beneficios como la seguridad de los datos y la facilidad en el intercambio entre información.\n\n![](https://cdn.statically.io/gh/vtexdocs/help-center-content/refs/heads/main/docs/es/tutorials/weni-by-vtex/flujos/call-webhook-como-hacer-llamadas-a-sistemas-externos_1.png)\n\nActualmente, la capacidad de conectarse e integrarse con otros sistemas es una funcionalidad esencial para la mayoría de las soluciones hoy en día. Por ello, tenemos una carta de acción para utilizar en los flujos justamente para esa función: **Llamar Webhook.**\n\n## Llamar webhook\n\nLa carta de **Llamar Webhook** es la responsable de la conexión entre la Plataforma Weni y otros sistemas externos, a continuación, tenemos un poco sobre su anatomía:\n\n![](https://cdn.statically.io/gh/vtexdocs/help-center-content/refs/heads/main/docs/es/tutorials/weni-by-vtex/flujos/call-webhook-como-hacer-llamadas-a-sistemas-externos_2.png)\n\n1. Método de la solicitud: Donde se define cuál será el método para su solicitud de API (GET, POST, PUT o DELETE).\n2. URL de la solicitud: Donde se coloca la URL de la solicitud para la API.\n3. Encabezado de la solicitud: Donde se coloca el encabezado de la solicitud junto con información como tokens de autorización y tipos de contenido.\n4. Cuerpo de la solicitud: Donde se agrega un cuerpo para su solicitud (usado para POST y PUT).\n\n## Cómo formatear correctamente el cuerpo de la solicitud\n\nNormalmente, para el cuerpo de las solicitudes POST y PUT, utilizamos la notación JSON para enviar la información solicitada por la API. A continuación, sigue el ejemplo de un cuerpo en JSON:\n`{ \"\"platform\"\":\"\"push\"\", \"\"author\"\":\"\"john\"\" }`\n\n¿Cómo podemos reproducir esta notación utilizando la carta _Call Webhook_? En la plataforma, utilizamos las funciones `@json y @object` para esta construcción, siendo la primera para señalar qué notación traduciremos los valores, y la segunda para señalar el comienzo y el fin de nuestras llaves. Traduciendo el ejemplo anterior a la notación utilizada en la plataforma, tenemos:\n`@(json(object(\"\"platform\"\",\"\"push\"\",\"\"author\"\",\"\"john\"\")))`\n\nEn caso de que desee utilizar alguna variable como, por ejemplo, `@contact.name` para el campo \"\"author\"\" de nuestro ejemplo, tenemos:\n`@(json(object(\"\"platform\"\",\"\"push\"\",\"\"author\"\",contact.name)))`\n\nEl cuerpo de la solicitud acepta todas las variables y expresiones soportadas en la plataforma.\n\n## Navegando en un webhook\n\nDespués de hacer la solicitud, puedes utilizar algunas expresiones para consultar información del retorno.\n\n![](https://cdn.statically.io/gh/vtexdocs/help-center-content/refs/heads/main/docs/es/tutorials/weni-by-vtex/flujos/call-webhook-como-hacer-llamadas-a-sistemas-externos_3.png)\n\n- **@results**\n  `@results.[nombre del result de la carta Llamar Webhook]`: Para consultar el estado de la solicitud, como por ejemplo: 200, 400, 500.\n\n- **@webhook**\n  Esta expresión se usa para recuperar los valores devueltos de la última llamada de webhook hecha en el flujo. Por ejemplo:\n  _ `@webhook`: El valor de esta variable es toda la respuesta de la última solicitud realizada.\n  _ `@webhook.results.cliente`: Nombre del cliente devuelto por la API, en caso de que solo se devuelva un objeto. \\* `@webhook.results.0.cliente`: Nombre del cliente devuelto por la API. Si la respuesta está en un array, es necesario especificar la posición deseada en el array, como 0, 1, 2, y así sucesivamente.\n\nPara almacenar los valores en otras variables, puedes guardarlos como un [campo de contacto](https://help.vtex.com/es/docs/tutorials/campo-de-contactos) o [resultado del flujo](https://help.vtex.com/es/docs/tutorials/glosario-de-variables).\""}