Loading...
Loading...
Use when configuring any n8n node: HTTP, webhooks, database, comms (Slack/Gmail/Discord), AI, triggers, Merge, anything. Triggers on any node-builder call (`node(...)`, `trigger(...)`, `tool(...)`, `memory(...)`, `languageModel(...)`, `ifElse(...)`, `merge(...)`, etc.), configuring a parameter, `useDataOfInput`, `numberOfInputs`, fan-in convergence, or any node-specific debugging.
npx skill4agent add n8n-io/skills n8n-node-configuration-officialget_node_typesget_node_typesget_node_typesget_node_typesget_node_types@searchListMethod@loadOptionsMethodexplore_node_resourcescredentialIdlist_credentialsvaluetoolWorkflow.workflowIdsearch_workflowsmode: 'id'resourceoperationoperation1. search_nodes(['<capability keyword>'])
→ returns matching node IDs + discriminators
2. Pick the right (resource, operation) for the task.
3. get_node_types([{ name: '...', resource: '...', operation: '...' }])
→ returns exact parameter shape including conditional fields
4. For any RLC / load-options param in that shape, ground the real value:
explore_node_resources({ nodeType, version, methodName, methodType, credentialType, credentialId, currentNodeParameters? })
→ use a returned `value`. Don't invent IDs.
5. Build the node config from that shape.
6. validate_workflow → fix errors.
7. get_workflow_details → inspect the saved config; confirm parameters landed.
8. test_workflow with pinned data → confirm runtime behavior.validate_node_configvalidate_node_config([{ type, typeVersion, parameters, isToolNode? }])validate_workflowvalidate_workflowvalidate_workflowai_toolisToolNode: truedisplayOptions{
resource: '<thing being operated on>', // 'message', 'spreadsheet', 'user', etc.
operation: '<verb>', // 'send', 'append', 'lookup', etc.
// ...operation-specific parameters
}(resource, operation)(message, send)(user, info)resourceoperationget_node_typesauthentication: 'genericCredentialType'genericAuthTypecredentials'predefinedCredentialType'operation: 'executeQuery'queryoperation: 'select'tablecolumnsmessageType: 'block'messageType: 'text'get_node_types@loadOptionsMethodexplore_node_resourcesmethodType: 'loadOptions'currentNodeParametersdocumentId| File | When to read |
|---|---|
| Configuring HTTP Request: auth, pagination, query/body parameters, retries |
| Configuring Webhook trigger or Respond to Webhook: body parsing, response shape, async patterns |
| Slack, Gmail, Discord, email: credential types, message shapes, attachments |
| Postgres, MySQL, Mongo, Supabase: query vs operation, parameter binding, error handling |
| AI Agent node config knobs: streaming, vision, |
| Webhook, Schedule, Manual, Execute Workflow Trigger: input schemas, polling vs realtime |
| Configuring a Switch node: unnamed outputs / missing fallback silently drop unmatched items |
| Configuring a Merge node, or you see |
| Anti-pattern | What goes wrong | Fix |
|---|---|---|
| Building node config from memory of how the node looked last year | Parameter shape has drifted, validation fails with cryptic errors | Always |
Skipping discriminators in | Get generic shape, miss operation-specific required fields | Always pass |
| Copying a node config from one operation to another and tweaking | Stale parameters trip validation, and conditional fields don't apply | Re-derive from the new operation's shape |
| Hardcoding tokens / credentials in node text fields | Leaks on export. See | Always credentials |
Not testing the node with | Runtime errors only surface on real data | Always test with pinned data before publish |