El nodo API te permite comunicarte con servicios externos desde tu flujo de conversación. Puedes consultar datos, enviar información, autenticarte contra APIs y procesar las respuestas — todo sin escribir código.
Piensa en este nodo como un mensajero: le dices a dónde ir (URL), qué llevar (body) y qué traer de vuelta (respuesta).
URL y método HTTP
En la parte superior del panel configuras los dos campos esenciales:
Método HTTP — define qué tipo de operación realizarás:
| Método | Para qué sirve | Ejemplo |
|---|
| GET | Obtener datos | Consultar el saldo de un cliente |
| POST | Crear un recurso | Registrar un nuevo pedido |
| PUT | Reemplazar un recurso completo | Actualizar todos los datos de un perfil |
| PATCH | Actualizar parcialmente | Cambiar solo el correo de un usuario |
| DELETE | Eliminar un recurso | Cancelar una suscripción |
URL — la dirección del servicio. Puedes inyectar variables directamente:
https://api.ejemplo.com/usuarios/{{$user.id}}/pedidos/{{$memory.pedidoId}}
Si pegas una URL que ya contiene parámetros (como ?clave=valor), el nodo los extrae automáticamente y los mueve a la pestaña de Parámetros.
Importar desde cURL
Si tienes un comando cURL listo (por ejemplo, de la documentación de un API), puedes pegarlo directamente en el campo de URL. El nodo interpreta automáticamente el método, headers, body y autenticación del comando.
Pestañas de configuración
El panel tiene 5 pestañas para configurar todos los aspectos de la petición:
Parámetros
Agrega parámetros de consulta (query string) como pares clave-valor. Cada parámetro tiene un checkbox para habilitarlo o deshabilitarlo sin eliminarlo.
usuario: {{$user.id}}
fecha: {{$context.fecha}}
Los parámetros se agregan automáticamente a la URL en formato ?param1=valor1¶m2=valor2.
Autenticación
Dos métodos de autenticación disponibles:
| Método | Configuración |
|---|
| Basic Auth | Usuario y contraseña. Se codifican automáticamente en base64 |
| Bearer Token | Token de acceso enviado en el header Authorization: Bearer <token> |
Ambos métodos soportan variables en sus campos, lo que permite usar credenciales almacenadas dinámicamente.
Las credenciales se mantienen en contexto durante la ejecución del workflow. Puedes editarlas desde el modal de credenciales si ya están almacenadas.
Agrega headers HTTP personalizados como pares clave-valor. Cada header tiene un checkbox para activarlo o desactivarlo.
Content-Type: application/json
X-API-Key: {{$memory.apiKey}}
El header Content-Type se actualiza automáticamente cuando cambias el tipo de body.
Body
Para métodos que envían datos (POST, PUT, PATCH), configura el cuerpo de la petición en distintos formatos:
| Formato | Uso típico |
|---|
| JSON | El más común para APIs REST. Editor con validación en tiempo real |
| XML | APIs SOAP o servicios legacy |
| Texto plano | Datos sin estructura específica |
| Multipart Form | Envío de archivos junto con datos de texto |
| Form URL Encoded | Formularios tradicionales web |
El editor JSON valida la estructura en tiempo real y soporta variables dentro del contenido:
{
"usuario_id": "{{$user.id}}",
"correo": "{{$memory.correo}}",
"nombre": "{{$user.names}}"
}
Settings
Configuraciones avanzadas para controlar el comportamiento de la petición:
Certificado SSL
Habilita la verificación SSL/TLS para conexiones seguras. Incluye un campo de timeout en milisegundos (por defecto 3000ms).
Certificados mTLS
Autenticación mutua TLS con el servidor. Esta opción solo aparece si tu compañía tiene al menos un certificado configurado.
- Al activar mTLS, el certificado SSL se desactiva automáticamente (son mutuamente excluyentes)
- Si existe un certificado primario, se selecciona automáticamente
- Puedes elegir cualquier certificado de la lista disponible
Ver gestión de certificados mTLS
Reintentos
Configura reintentos automáticos cuando una petición falla:
| Opción | Descripción |
|---|
| Condición de reintento | Solo errores de red (por defecto) o reintentar siempre |
| Cantidad de reintentos | Número de intentos adicionales |
| Tipo de espera | Sin espera, exponencial o personalizada (en milisegundos) |
| Resetear timeout | Reinicia el tiempo de espera en cada reintento |
Guardar la respuesta
Activa el toggle “Guardar respuesta” en la parte superior y define un nombre de variable. La respuesta completa del API se almacenará en esa variable.
Acceder a la respuesta sin manipulación
Usa la variable directamente en otros nodos:
Manipular la respuesta en un nodo Código
Si necesitas extraer datos específicos del JSON:
let apiResponse = $context.getHttpResponse('apiResponse')
apiResponse = apiResponse.json()
let nombre = apiResponse.data.usuario.nombre
$memory.set('nombre', nombre)
La llave que uses en $context.getHttpResponse('apiResponse') debe coincidir exactamente con la que especificaste en el campo “Guardar respuesta”.
Respuesta de prueba
Después de ejecutar una prueba desde el panel, la respuesta se muestra en una sección colapsable con:
- Código de estado (por ejemplo,
200 OK)
- Pestaña Body — Respuesta formateada como JSON con botón de copiar
- Pestaña Headers — Headers de respuesta del servidor