Unfortunately at the moment there is no way to send specific OData query during a refresh (or at any other time except for the initial connection).
Would you mind sharing more details about how your clients might interact with the workbook?
Perhaps we can find some other way to accomplish this.
Few questions I have in mind:
1. Does your OData feed changes quite frequently such that clients might need refresh it quite often?
2. How many items are in the Compact List?
3. Are particular clients only interest in specific filtered values? Perhaps you can split this into different sheets. Each sheet having a different odata url. That way they can be refreshed independently.
Thank you for your prompt reply. To answer your questions:
1) The data changes once a month, but it is quite large, possibly millions of rows.
2) Number of items in the compact list would depend on the project, anywhere between hundreds and thousands. We may go from using a compact list to a wildcard match when the list is large.
3) Unfortunately, the specific interests would be ad hoc and hard to predict.
We have used SQL based connections in the past with Tableau desktop and the queries sent to the database include in the WHERE clause the user-selected filtered items. Hopefully, the same kind of query filtering will be supported for OData in future versions.