Custom Actions

Appelez n'importe quel REST API ne figurant pas dans le catalogue d'applications built-in. Configurez URL, la méthode, les en-têtes et le modèle de corps, puis utilisez la réponse comme n'importe quelle autre sortie d'étape.


Que sont les Custom Actions?

Custom Actions sont des étapes de requête HTTP soutenues par le http-request application. Ils vous permettent d'appeler n'importe quel REST API — outils internes, sources de données propriétaires, services third-party sans intégration native — sans écrire de code.

Le URL, les en-têtes et le corps sont des modèles. Vous pouvez injecter les résultats des étapes précédentes, les champs de saisie ou les secrets de l'espace de travail à l'aide de la norme {{variable}} syntaxe.


Configuration

{
  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 — prend en charge les variables de modèle; les paramètres de requête peuvent être intégrés ou construits dynamiquement.

en-têtes — objet JSON; à utiliser pour les jetons d'authentification, le type de contenu et les en-têtes personnalisés.

corps — objet JSON ou modèle de chaîne; utilisé avec POST / PUT / PATCH.


Entrée et sortie

Les entrées sont des variables de modèle résolues au moment de l'exécution à partir des entrées du flux de travail et des sorties des étapes précédentes. La réponse HTTP est automatiquement analysée:

  • Réponse JSON - analysé en un objet; les champs sont disponibles sous forme {{steps.my_step.fieldName}} dans les étapes en aval.
  • Texte / réponse HTML — disponible sous forme {{steps.my_step.body}}.
  • Code d'état — disponible sous forme {{steps.my_step.status}} pour le routage conditionnel.

Test avant l'ajout à un flux de travail

Utiliser test_app_action depuis n'importe quel client MCP pour lancer une requête en direct et inspecter la réponse sans consommer de crédits de workflow ni créer d'exécution:

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 up

Modèles d'authentification

Jeton du porteur dans l'en-tête

headers: { "Authorization": "Bearer {{input.token}}" }

Clé API comme paramètre de requête

url: "https://api.example.com/data?api_key={{input.apiKey}}"

Authentification de base

headers: { "Authorization": "Basic {{input.base64Credentials}}" }

Évitez les secrets de codage en dur dans la configuration de l'étape. Transmettez-les en tant qu'entrées de flux de travail (marquées comme sensibles) ou récupérez-les à partir des secrets de l'espace de travail s'ils sont pris en charge.


Exemple: appeler un webhook interne

{
  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}}"
    }
  }
}

Prochaines étapes

  • App System — Parcourez plus de 100 intégrations built-in avant de créer une action personnalisée
  • App Actions Reference — Schémas d'entrée/sortie pour toutes les actions natives
  • n8n Importer — Importer des nœuds de requête HTTP à partir de flux de travail n8n existants