{
  "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": {}
      },
      "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": {
    "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."
}