diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.get.desc.xml
new file mode 100644
index 0000000000..0a126a030c
--- /dev/null
+++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.get.desc.xml
@@ -0,0 +1,9 @@
+
+ Create Node Templates
+ Document List Component - Create Node Templates GET data webscript
+ /slingshot/doclib/node-templates
+ argument
+ user
+ required
+ internal
+
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.get.js b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.get.js
new file mode 100644
index 0000000000..52502562fd
--- /dev/null
+++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.get.js
@@ -0,0 +1,10 @@
+/**
+ * Document List Component: Create New Node - get list of available node templates in the Data Dictionary
+ */
+function main()
+{
+ var nodes = search.selectNodes('/app:company_home/app:dictionary/app:node_templates/*[subtypeOf("cm:content")]');
+ return nodes;
+}
+
+model.nodes = main();
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.get.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.get.json.ftl
new file mode 100644
index 0000000000..4923d97c59
--- /dev/null
+++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.get.json.ftl
@@ -0,0 +1,15 @@
+<#escape x as jsonUtils.encodeJSONString(x)>
+{
+ "data":
+ [
+ <#list nodes as node>
+ {
+ "nodeRef": "${node.nodeRef}",
+ "name": "${node.name}",
+ "title": "${node.properties.title!""}",
+ "description": "${node.properties.description!""}"
+ }<#if node_has_next>,#if>
+ #list>
+ ]
+}
+#escape>
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.post.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.post.desc.xml
new file mode 100644
index 0000000000..04991abaf6
--- /dev/null
+++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.post.desc.xml
@@ -0,0 +1,9 @@
+
+ Create Node Templates
+ Document List Component - Create Node Templates POST data webscript
+ /slingshot/doclib/node-templates
+ argument
+ user
+ required
+ internal
+
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.post.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.post.json.ftl
new file mode 100644
index 0000000000..e37684e04d
--- /dev/null
+++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.post.json.ftl
@@ -0,0 +1,3 @@
+{
+ "success": true
+}
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.post.json.js b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.post.json.js
new file mode 100644
index 0000000000..e61e92634c
--- /dev/null
+++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.post.json.js
@@ -0,0 +1,31 @@
+/**
+ * Document List Component: Create New Node - create copy of node template in the Data Dictionary
+ */
+function main()
+{
+ // get the arguments - expecting the "sourceNodeRef" and "parentNodeRef" of the source node to copy
+ // and the parent node to contain the new copy of the source.
+ var sourceNodeRef = json.get("sourceNodeRef");
+ if (sourceNodeRef == null || sourceNodeRef.length === 0)
+ {
+ status.setCode(status.STATUS_BAD_REQUEST, "Mandatory 'sourceNodeRef' parameter missing.");
+ return;
+ }
+ var parentNodeRef = json.get("parentNodeRef");
+ if (parentNodeRef == null || parentNodeRef.length === 0)
+ {
+ status.setCode(status.STATUS_BAD_REQUEST, "Mandatory 'parentNodeRef' parameter missing.");
+ return;
+ }
+
+ // get the nodes and perform the copy - permission failures etc. will produce a status code response
+ var sourceNode = search.findNode(sourceNodeRef),
+ parentNode = search.findNode(parentNodeRef);
+ if (sourceNode == null || parentNode == null)
+ {
+ status.setCode(status.STATUS_NOT_FOUND, "Source or destination node is missing for copy operation.");
+ }
+ sourceNode.copy(parentNode);
+}
+
+main();
\ No newline at end of file