Overview
Retrieves complete workflow JSON for a specific template by ID. The returned workflow can be directly imported into n8n through the UI or API. Access to 2,700+ curated workflows from the community template library.
Performance : Fast (< 100ms) - single database lookup
Parameters
The numeric ID of the template to retrieve. Get template IDs from search_templates. Example: 1234, 5678
Response detail level.
nodes_only: Minimal - just node list (useful for quick overview)
structure: Nodes + connections (topology view)
full: Complete workflow JSON ready for import (default)
Response
Complete template information Creator information
name: Author name
username: Author username
verified: Whether author is verified
Array of node types used in the workflow
Number of times the template has been viewed
Creation date (ISO 8601 format)
Link to template on n8n.io
Complete workflow JSON (only in mode="full" or mode="structure") Array of node objects Each node contains:
id: Unique node identifier
name: Node name in workflow
type: Node type (e.g., “n8n-nodes-base.httpRequest”)
typeVersion: Node version
position: [x, y] coordinates
parameters: Node configuration
credentials: Credential configuration (placeholders)
Object mapping source node names to target connections Structure: {
"Node1" : {
"main" : [[{ "node" : "Node2" , "type" : "main" , "index" : 0 }]]
}
}
Workflow configuration
executionOrder: Execution order version (“v0” or “v1”)
timezone: Workflow timezone
saveDataErrorExecution: Error data retention
saveDataSuccessExecution: Success data retention
Instructions for using the workflow
Examples
Get Complete Workflow (Default)
Get Just Node List
Get Nodes and Connections
Get Full Workflow for Import
Response Example (Full Mode)
{
"template" : {
"id" : 1234 ,
"name" : "Slack Notification on Webhook" ,
"description" : "Send Slack notification when webhook is triggered" ,
"author" : {
"name" : "n8n Team" ,
"username" : "n8n" ,
"verified" : true
},
"nodes" : [
"n8n-nodes-base.webhook" ,
"n8n-nodes-base.slack"
],
"views" : 15234 ,
"created" : "2023-05-15T10:30:00Z" ,
"url" : "https://n8n.io/workflows/1234" ,
"workflow" : {
"nodes" : [
{
"id" : "webhook-1" ,
"name" : "Webhook" ,
"type" : "n8n-nodes-base.webhook" ,
"typeVersion" : 1 ,
"position" : [ 250 , 300 ],
"parameters" : {
"httpMethod" : "POST" ,
"path" : "slack-notification" ,
"responseMode" : "onReceived"
}
},
{
"id" : "slack-1" ,
"name" : "Slack" ,
"type" : "n8n-nodes-base.slack" ,
"typeVersion" : 1 ,
"position" : [ 450 , 300 ],
"parameters" : {
"resource" : "message" ,
"operation" : "post" ,
"channel" : "#general" ,
"text" : "={{ $json.message }}"
},
"credentials" : {
"slackApi" : {
"id" : "1" ,
"name" : "Slack account"
}
}
}
],
"connections" : {
"Webhook" : {
"main" : [
[
{
"node" : "Slack" ,
"type" : "main" ,
"index" : 0
}
]
]
}
},
"settings" : {
"executionOrder" : "v1" ,
"timezone" : "America/New_York" ,
"saveDataErrorExecution" : "all" ,
"saveDataSuccessExecution" : "all"
}
}
},
"usage" : "Import this workflow into n8n. Configure Slack credentials. Test the webhook by sending a POST request to the generated webhook URL."
}
Response Example (Nodes Only Mode)
{
"template" : {
"id" : 1234 ,
"name" : "Slack Notification on Webhook" ,
"nodes" : [
"n8n-nodes-base.webhook" ,
"n8n-nodes-base.slack"
]
}
}
Use Cases
Download workflows for direct import : Get complete workflow JSON ready to import into n8n
Study workflow patterns : Analyze how experienced users build workflows
Get workflow JSON for customization : Modify templates to fit your specific needs
Clone popular workflows : Start with proven workflow patterns
Learn complex automations : Understand how advanced workflows are structured
Best Practices
Check template exists before modifications
Always verify the template exists before attempting to modify it. // First check if template exists
get_template({ "templateId" : 1234 , "mode" : "nodes_only" })
// Then get full workflow
get_template({ "templateId" : 1234 , "mode" : "full" })
Review nodes before importing
Check which nodes are used to ensure compatibility with your n8n instance. // Check nodes first
get_template({ "templateId" : 1234 , "mode" : "nodes_only" })
// Then get full workflow if compatible
get_template({ "templateId" : 1234 , "mode" : "full" })
Save template JSON locally for customizations
If you plan multiple customizations, save the template JSON to avoid repeated API calls.
Check creation date for recent patterns
Newer templates may use more recent n8n features and best practices.
Verify credentials before import
Templates use placeholder credentials. Ensure you have the required credentials configured.
Common Pitfalls
Template IDs change on database refresh : Template IDs are not permanent. They may change if the template database is rebuilt.
Some templates use deprecated node versions : Older templates may use deprecated node versions that require migration.
Credentials are placeholders : All credentials in templates are placeholders. You must configure your own credentials after import.
Not all templates work with all n8n versions : Check node versions and n8n version compatibility before importing.
External service dependencies : Templates may reference external services you don’t have access to (APIs, databases, etc.).
Metric Value Notes Query time < 10ms Single database lookup Workflow JSON parsing < 50ms JSON serialization Total response time < 100ms Complete operation Network calls 0 Uses local cache
Mode Comparison
Mode Response Size Use Case Includes Workflow nodes_only ~500 bytes Quick overview No structure ~2-5KB Topology view Partial (nodes + connections) full ~5-50KB Import/customization Yes (complete)
search_templates Search for templates first
validate_workflow Validate template workflow
n8n_create_workflow Import template to n8n