How to use a source dashboard to maintain many customer dashboards?

I’m using a single Grafana instance to support multiple customers. I want each customer to have at least their own dashboard. But I want each dashboard to be identical. I.e. have the same charts and configs. The only thing that would be different would be a templated variable for each customer. (Think of it as a customer id.) So there is a “source dashboard” that serves as a template. Every time that source dashboard changes, I want all those downstream customer dashboards to update immediately. What’s the best way to do this? This is what I’m thinking:

  1. Maintain a source dashboard in Grafana. Use the dashboard API to source control everything in that dashboard. (I.e. export the entire dashboard into GitHub.)
  2. Every time I make a change in the source dashboard, have a script that uses the Grafana API to take those changes and apply them to all the individual customer dashboards.
  3. Whenever I need to create a new customer dashboard, I would just “instantiate” it using the source dashboard with a new customer id.

Is this the best practice way to do it? I can’t find any libraries or native capability in Grafana to make this easier. It seems like I’d need to do a lot of custom scripting to make this possible. Is this correct? Would it be okay to do this even if there are hundreds, thousands of customer dashboards?

Oh I see this thread! Grafana Dashboards-as-Code For Newcomers

Anyone let me know if that’s the canonical discussion for this type of thing and I can close this topic.