Hardcoded URL in n8n
Why embedding URLs directly in workflows makes environment promotion difficult
What is this issue?
Hardcoded URLs are API endpoints, webhooks, or service addresses written directly in node parameters instead of using expressions or environment variables. This ties your workflow to a specific environment.
Common hardcoded patterns:
•https://api.example.com/v1/users in HTTP Request nodes•https://prod.myservice.com/webhook in Webhook nodes•localhost:5432 in database connection strings•https://staging.internal.com in test workflows
Why is this dangerous?
Environment promotion issues
Moving workflows from dev to staging to production requires manual URL changes in each node.
Accidental production calls
A dev workflow might accidentally call production APIs if you forget to update URLs.
Maintenance burden
When URLs change, you need to find and update them across all workflows manually.
Team inconsistency
Team members may have different local configurations, causing collaboration issues.
How to fix it
- 1
Use environment variables
Define base URLs as environment variables and reference them with $env in your expressions.
- 2
Use expressions
Replace hardcoded URLs with expressions like {{ $env.API_BASE_URL }}/users.
- 3
Create configuration nodes
Use a Set node at the start to define environment-specific values that downstream nodes reference.
- 4
Document your variables
Maintain a list of required environment variables in your workflow notes or documentation.
Scan your workflow now
Upload your n8n workflow JSON and detect hardcoded URLs that should be replaced with variables.