Custom Actions
Llame a cualquier REST API que no esté en el catálogo de aplicaciones built-in. Configure URL, el método, los encabezados y la plantilla del cuerpo; luego use la respuesta como cualquier otro resultado de paso.
¿Qué son Custom Actions?
Custom Actions son pasos de solicitud HTTP respaldados por el http-request aplicación. Le permiten llamar a cualquier REST API (herramientas internas, fuentes de datos patentadas, servicios third-party sin una integración nativa) sin escribir código.
El URL, los encabezados y el cuerpo son plantillas. Puede inyectar salidas de pasos anteriores, campos de entrada o secretos del espacio de trabajo utilizando el estándar {{variable}} sintaxis.
Configuración
{
type: "appAction",
app: { id: "http-request", actionId: "request" },
stepInputData: {
url: "https://api.example.com/enrich?domain={{input.domain}}",
method: "GET", // GET | POST | PUT | DELETE | PATCH
headers: {
"Authorization": "Bearer {{input.apiKey}}",
"Content-Type": "application/json"
},
body: { // for POST / PUT / PATCH
"company": "{{steps.enrich.name}}",
"score": "{{steps.score.value}}"
}
}
}URL — admite variables de plantilla; Los parámetros de consulta se pueden integrar o construir dinámicamente.
encabezados — objeto JSON; Úselo para tokens de autenticación, tipo de contenido y encabezados personalizados.
cuerpo — objeto JSON o plantilla de cadena; utilizado con POST / PUT / PATCH.
Entrada y salida
Las entradas son variables de plantilla resueltas en el momento de la ejecución a partir de entradas del flujo de trabajo y salidas de pasos anteriores. La respuesta HTTP se analiza automáticamente:
- •respuesta JSON - analizado en un objeto; Los campos están disponibles como
{{steps.my_step.fieldName}}en pasos posteriores. - •Texto / respuesta HTML — disponible como
{{steps.my_step.body}}. - •Código de estado — disponible como
{{steps.my_step.status}}para enrutamiento condicional.
Probar antes de agregar a un flujo de trabajo
Usar test_app_action desde cualquier cliente MCP para activar una solicitud en vivo e inspeccionar la respuesta sin consumir créditos de flujo de trabajo ni crear una ejecución:
test_app_action("http-request", "request", {
url: "https://api.example.com/companies/acme",
method: "GET",
headers: { "Authorization": "Bearer sk-..." }
})
// Returns the live response so you can inspect fields before wiring them upPatrones de autenticación
Token al portador en el encabezado
headers: { "Authorization": "Bearer {{input.token}}" }Clave API como parámetro de consulta
url: "https://api.example.com/data?api_key={{input.apiKey}}"Autenticación básica
headers: { "Authorization": "Basic {{input.base64Credentials}}" }Evite codificar secretos en la configuración del paso. Páselos como entradas de flujo de trabajo (marcados como confidenciales) o recupérelos de los secretos del espacio de trabajo si es compatible.
Ejemplo: llamar a un webhook interno
{
type: "appAction",
app: { id: "http-request", actionId: "request" },
stepInputData: {
url: "https://hooks.company.internal/deal-scored",
method: "POST",
headers: { "Content-Type": "application/json" },
body: {
"dealId": "{{input.dealId}}",
"score": "{{steps.score.value}}",
"tier": "{{steps.aggregate.tier}}"
}
}
}Próximos pasos
- App System — Explore más de 100 integraciones built-in antes de crear una acción personalizada
- App Actions Reference — Esquemas de entrada/salida para todas las acciones nativas
- n8n Importar — Importar nodos de solicitud HTTP de flujos de trabajo n8n existentes
