{ "name": "Dynamic credentials using expressions", "nodes": [ { "id": "cc6f2b1e-0ed0-4d22-8a44-d7223ba283b4", "name": "n8n Form Trigger", "type": "n8n-nodes-base.formTrigger", "position": [ 560, 520 ], "webhookId": "da4071f2-7550-4dae-aa48-8bced4291643", "parameters": { "path": "da4071f2-7550-4dae-aa48-8bced4291643", "formTitle": "Test dynamic credentials", "formFields": { "values": [ { "fieldLabel": "Enter your NASA API key", "requiredField": true } ] }, "responseMode": "responseNode", "formDescription": "This form is for testing an n8n workflow that demonstrates setting credentials with expressions." }, "typeVersion": 2, "notes": "This formTrigger node performs automated tasks as part of the workflow." }, { "id": "ef336bae-3d4f-419c-ab5c-b9f0de89f170", "name": "NASA", "type": "n8n-nodes-base.nasa", "position": [ 900, 520 ], "parameters": { "additionalFields": {} }, "credentials": { "nasaApi": { "id": "QDDBOZOD6k3ijL5t", "name": "NASA account" } }, "typeVersion": 1, "notes": "This nasa node performs automated tasks as part of the workflow." }, { "id": "143bcdb6-aca0-4dd8-9204-9777271cd230", "name": "Respond to Webhook", "type": "n8n-nodes-base.respondToWebhook", "position": [ 1220, 520 ], "parameters": { "options": {}, "redirectURL": "{{ $env.BASE_URL }}", "respondWith": "redirect" }, "typeVersion": 1, "notes": "This respondToWebhook node performs automated tasks as part of the workflow." }, { "id": "0a0dee23-fa16-4f09-b5e0-856f47fb53d0", "name": "Sticky Note", "type": "n8n-nodes-base.stickyNote", "position": [ 120, 140 ], "parameters": { "color": 4, "width": 322, "height": 564, "content": "This workflow shows how to set credentials dynamically using expressions.\n\n\nFirst, set up your NASA credential: \n\n1. Create a new NASA credential.\n1. Hover over **API Key**.\n1. Toggle **Expression** on.\n1. In the **API Key** field, enter `{{ $json[\"Enter your NASA API key\"] }}`.\n\n\nThen, test the workflow:\n\n1. Get an [API key from NASA]({{ $env.API_BASE_URL }}\n2. Select **Test workflow**\n3. Enter your key using the form.\n4. The workflow runs and sends you to the NASA picture of the day.\n\n\nFor more information on expressions, refer to [n8n documentation | Expressions]({{ $env.WEBHOOK_URL }}" }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." }, { "id": "dd766e32-334d-4e46-9daa-7800b134a3a5", "name": "Sticky Note1", "type": "n8n-nodes-base.stickyNote", "position": [ 500, 380 ], "parameters": { "height": 319, "content": "User submits an API key using the form" }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." }, { "id": "3d8f02e6-e029-41dc-89ad-0f5cffe09348", "name": "Sticky Note2", "type": "n8n-nodes-base.stickyNote", "position": [ 820, 380 ], "parameters": { "color": 5, "height": 319, "content": "The workflow passes the key to the NASA node. You can reference the value using the expression `$json[\"Enter your NASA API key\"]`. This is also available to the node credential. " }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." }, { "id": "096eb6ab-c276-4687-9dc0-50e16a8f709a", "name": "Sticky Note3", "type": "n8n-nodes-base.stickyNote", "position": [ 1140, 380 ], "parameters": { "height": 319, "content": "The Respond to Webhook node controls the form response (in this example, redirecting the user to an image)" }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." } ], "pinData": {}, "connections": { "143bcdb6-aca0-4dd8-9204-9777271cd230": { "main": [ [ { "node": "error-handler-143bcdb6-aca0-4dd8-9204-9777271cd230", "type": "main", "index": 0 } ], [ { "node": "error-handler-143bcdb6-aca0-4dd8-9204-9777271cd230-efbfcaf6", "type": "main", "index": 0 } ], [ { "node": "error-handler-143bcdb6-aca0-4dd8-9204-9777271cd230-f8b7d3d5", "type": "main", "index": 0 } ], [ { "node": "error-handler-143bcdb6-aca0-4dd8-9204-9777271cd230-9c00ab2d", "type": "main", "index": 0 } ], [ { "node": "error-handler-143bcdb6-aca0-4dd8-9204-9777271cd230-612fc458", "type": "main", "index": 0 } ], [ { "node": "error-handler-143bcdb6-aca0-4dd8-9204-9777271cd230-87f9764a", "type": "main", "index": 0 } ], [ { "node": "error-handler-143bcdb6-aca0-4dd8-9204-9777271cd230-50789539", "type": "main", "index": 0 } ], [ { "node": "error-handler-143bcdb6-aca0-4dd8-9204-9777271cd230-ff0a7037", "type": "main", "index": 0 } ], [ { "node": "error-handler-143bcdb6-aca0-4dd8-9204-9777271cd230-97c10b6f", "type": "main", "index": 0 } ] ] } }, "settings": { "executionOrder": "v1", "saveManualExecutions": true, "callerPolicy": "workflowsFromSameOwner", "errorWorkflow": null, "timezone": "UTC", "executionTimeout": 3600, "maxExecutions": 1000, "retryOnFail": true, "retryCount": 3, "retryDelay": 1000 }, "description": "Automated workflow: Dynamic credentials using expressions. This workflow integrates 5 different services: stickyNote, formTrigger, respondToWebhook, stopAndError, nasa. It contains 9 nodes and follows best practices for error handling and security.", "meta": { "instanceId": "workflow-23ee5122", "versionId": "1.0.0", "createdAt": "2025-09-29T07:07:44.925849", "updatedAt": "2025-09-29T07:07:44.925867", "owner": "n8n-user", "license": "MIT", "category": "automation", "status": "active", "priority": "high", "environment": "production" }, "tags": [ "automation", "n8n", "production-ready", "excellent", "optimized" ], "notes": "Excellent quality workflow: Dynamic credentials using expressions. This workflow has been optimized for production use with comprehensive error handling, security, and documentation." }