diff --git a/grafana/client/init.sls b/grafana/client/init.sls
index 60482b9..c9101dc 100644
--- a/grafana/client/init.sls
+++ b/grafana/client/init.sls
@@ -28,11 +28,13 @@
 
 {%- set raw_dict = {} %}
 {%- set final_dict = {} %}
+{%- set parameters = {} %}
 
 {%- if client.remote_data.engine == 'salt_mine' %}
 {%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
   {%- if node_grains.grafana is defined %}
   {%- set raw_dict = salt['grains.filter_by']({'default': raw_dict}, merge=node_grains.grafana.get('dashboard', {})) %}
+  {%- set parameters = salt['grains.filter_by']({'default': parameters}, merge=node_grains.grafana.get('parameters', {})) %}
   {%- endif %}
 {%- endfor %}
 {%- endif %}
@@ -40,6 +42,9 @@
 {%- if client.dashboard is defined %}
   {%- set raw_dict = salt['grains.filter_by']({'default': raw_dict}, merge=client.dashboard) %}
 {%- endif %}
+{%- if client.parameters is defined %}
+  {%- set parameters = salt['grains.filter_by']({'default': parameters}, merge=client.parameters) %}
+{%- endif %}
 
 {%- for dashboard_name, dashboard in raw_dict.iteritems() %}
   {%- if dashboard.get('format', 'yaml')|lower == 'yaml' %}
@@ -71,7 +76,8 @@
   grafana3_dashboard.present:
   - name: {{ dashboard_name }}
     {%- if dashboard.get('format', 'yaml')|lower == 'json' %}
-    {%- import_json dashboard.template as dash %}
+    {%- import dashboard.template as dashboard_template with context %}
+    {%- set dash = dashboard_template|load_json %}
   - dashboard: {{ dash|json }}
   - dashboard_format: json
     {%- else %}
