Dashboard public link URL filter not working

Hi,

I have a dashboard which I need to send to various people based on their location. Dashboard has a filter based on the list of location.

What I am trying to achieve is to send each person dashboard filtered to their respective location (3 letter code). According to documentation I can get that by adding/assigning filter and hiding it as well.

So url would look like
https://dashboard/public/dashboard/?LocationName=XXX#hide_parameters=LocationName

But when I open the link filter has not been applied and is still visible.

In summary I would like to send dashboard to their local managers based on their location only.

What I am doing wrong?

Thanks

Hi @DBA

Post "Diagnostic Info" from Admin > Troubleshooting.

Sounds like you should be using Embedding with Locked parameters instead of Public Sharing:
https://www.metabase.com/docs/latest/administration-guide/13-embedding.html

Are you sure that your filter name has uppercase letters, and isn't just locationname ?

Hi @flamber,

Thanks for quick response. Filter name was just an example. The name is definitely correct.

I'll have a look at embedding option

Long story short - I have 150 managers that needs monthly report for their respective location. I can send public link and it works like a charm, except they still can change dashboard filter to any of the locations listed in filter, which I am trying to avoid. So, instead of creating 150 dashboards for each one of them, I was hoping I can send link for specific location and disable/hide filter.

Thanks again and here is diagnostic info:

Diagnostic Info
{
"browser-info": {
"language": "en-US",
"platform": "Win32",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36 Edg/92.0.902.84",
"vendor": "Google Inc."
},
"system-info": {
"file.encoding": "Cp1252",
"java.runtime.name": "OpenJDK Runtime Environment",
"java.runtime.version": "11.0.11+9",
"java.vendor": "AdoptOpenJDK",
"java.vendor.url": "https://adoptopenjdk.net/",
"java.version": "11.0.11",
"java.vm.name": "OpenJDK 64-Bit Server VM",
"java.vm.version": "11.0.11+9",
"os.name": "Windows Server 2019",
"os.version": "10.0",
"user.language": "en",
"user.timezone": "Australia/Brisbane"
},
"metabase-info": {
"databases": [
"postgres",
"sqlserver",
"h2"
],
"hosting-env": "unknown",
"application-database": "postgres",
"application-database-details": {
"database": {
"name": "PostgreSQL",
"version": "13.3"
},
"jdbc-driver": {
"name": "PostgreSQL JDBC Driver",
"version": "42.2.18"
}
},
"run-mode": "prod",
"version": {
"date": "2021-08-03",
"tag": "v0.40.2",
"branch": "release-x.40.x",
"hash": "b884d29"
},
"settings": {
"report-timezone": null
}
}
}

@DBA
I'm 99.99% sure that your dashboard filter reference is locationname (lower case), but it's very simple to test. Go to your public dashboard, change the filter and check the URL.
I cannot reproduce with 0.40.5: https://github.com/metabase/metabase/releases/latest

Hi, @flamber,

Sorry for delay, was on holiday

I have tried but no luck.

LocationName is just a filter label I used. It is based on a table with PropertyCode (ie "SYD") for Sydney since this code is used in data sources (tables) used on the dashboard.

In data model for that table I selected Entity Name as a field type and also selected "Filtering on this field" as "List of all values"

I am pretty sure I am doing something wrong here :slight_smile:

I'll go again through help docos to find out if I missed anything in dashboard filter creation.

Thanks again

@DBA Post the output of /api/dashboard/123`, where 123 is your dashboard ID.

There's a massive difference between filter names and labels.

Bingo !

I managed to make it work (with help of our web developer). The issue was filter name I used and you were spot on - it used the name as I named it but lower case and no forward slash at the and of the dashboard.

Thanks heaps @flamber this would make my life much easier :smile: