Dynamic Subscriptions and Parameters for Power BI Paginated Reports
Your managers need the same monthly training report, but each needs to see their own team. Preparing every copy by hand soon becomes another month-end task.
PBRS can pair each recipient with the right report parameters, then prepare and deliver their copy as part of one recurring reporting job.
- The monthly training review Help each manager see who still needs training
- Your options Make the department and month mean what you intend
- Set it up Prepare the two reports before expanding the list
- For developers Help the application pass the right parameter values
- Your next step Let the managers get on with planning training
Help each manager see who still needs training
Imagine you coordinate the monthly training review. The Operations manager wants to see which members of her team still need to complete a course. The Customer Support manager needs the same information for his team, so he can arrange cover while people attend.
You already have a paginated report that answers both questions. You select Operations, choose the month and export a PDF. Then you repeat the process for Customer Support and send the two files. Before long, other managers ask for their own copies.
The report does not need to be redesigned for every manager. It needs the right selections each time it runs. Those selections are its parameters: in our example, the department and the reporting month.
PBRS can read those choices from a maintained delivery list alongside each manager’s email address. The job uses the corresponding values to prepare and send each report, so you can spend less time recreating the same selections before every review.
Power BI also offers native dynamic subscriptions for eligible paginated reports. Whichever route you choose, the useful result is the same: the Operations manager can find her team’s outstanding training without sorting through another department’s detail.
Start with the question they need to answer
Ask each manager how they use the report. In this example, they need to identify unfinished courses and arrange time to complete them. That gives you a practical way to judge whether the delivered PDF is useful.
Make the department and month mean what you intend
Begin by opening the published report yourself. Choose Operations and the completed reporting month, then look at the detail. Does it contain Operations employees only, or has the selection merely changed the heading? Fix that in the report before automating delivery.
The name a manager recognises may differ from the value the report expects. In our example, Operations is labelled “Operations” but its underlying department value is 101. Customer Support uses 202. The delivery setup must pass those values to the report’s Integer DepartmentId parameter.
Next, decide how the month should work. Both managers need the same completed period. Use a fixed month for the first test so you can compare the outputs, then decide how the recurring job will supply the next period. Running every month does not, by itself, change a fixed September selection.
A native dynamic subscription reads recipient and parameter values from a Power BI semantic model. It can be enough when its capacity requirements and email delivery fit your situation. PBRS uses a data driver to supply the delivery records and lets you maintain the parameters with the output formats and destinations.
Native parameter choices and subscription requirements
For the month, Current captures the selected report value; render a different value and select Current again to update it. Default uses the report author’s default, which can be an expression. Get from data takes a value from the recipient model.
Native dynamic paginated subscriptions need a supported Premium, Fabric or Fabric-trial capacity workspace, Build permission on the recipient model and a Contributor, Member or Admin workspace role. They have a 1,000-row recipient limit, a 10-minute timeout and attachments smaller than 25 MB. External recipients remain subject to separate delivery rules.
See Microsoft’s paginated dynamic subscription guide before choosing this route. Receiving an attachment does not itself give someone interactive access to the report.
Keep access separate from selection
A department parameter chooses the report content. Maintain a separate approval for who may receive that content, especially when someone changes teams or takes over a manager’s role.
Prepare the two reports before expanding the list
Start with Operations and Customer Support, using controlled test mailboxes instead of the managers’ addresses. Prepare two approved delivery records: one for department 101 and one for department 202, both for the same reporting month.
In PBRS, create a Data-Driven schedule for Power BI Service Paginated Reports and select the training report. The data driver is the source of those delivery records. Check its results before using them to address an email or select report content.
In the Parameters wizard, add the report’s actual department parameter, choose its type and insert the matching driver field as its value. Repeat for the month. If the report calls that parameter ReportMonth, use that exact name and the type the report defines; your own report may use a different name or a date rather than a text month code.
Preview each department, choose PDF for the output and map the Email destination to the recipient on the same record. Keep the pairings easy to review: Operations’ address goes with 101, and Customer Support’s goes with 202.
Read the copies the managers will receive
Run the test and open both attachments. Check the department, reporting month and a few familiar employees. An Operations employee should appear in the Operations copy and be absent from the Customer Support copy. Check the outstanding-course totals against the report you rendered manually.
Ask the managers to review an approved test copy as well. Can they find the people who need time to complete training? Once the result is right, set the approved recipients, choose the recurring timing and put the month-update rule in place.
If you choose the native dynamic subscription
Open Subscribe to report > Create a subscription > Dynamic per recipient. Select the model containing your recipient records and inspect the email, department and month fields.
Map the recipient and department from that data. Choose the month’s Current, Default or Get from data option deliberately, then configure the attachment and cadence. Test both recipients’ reports before expanding the list.
Check a month with no outstanding courses
A manager may have nothing left to follow up. Decide what they should receive in that case, and test it, so an empty report does not look like a failed delivery.
Help the application pass the right parameter values
If your application maintains the reporting settings, keep the same department choices clear in its code. Operations means 101 and Customer Support means 202 in this example. A friendly label is useful in the interface; the report still needs its underlying value.
The PBRS parameter example below shows how to represent Operations and a fixed test month for a Power BI paginated report. It is a configuration fragment, not a complete request or a replacement for the data driver that supplies every recipient’s values.
API example: represent Operations and its reporting month
This example assumes DepartmentId is numeric and ReportMonth is text. Use the actual report definitions. PBRS represents the values as strings, with a separate type selector.
{
"Parameters": [
{
"ParameterName": "DepartmentId",
"ParameterValue": "101",
"ParameterType": 1,
"IsNull": false
},
{
"ParameterName": "ReportMonth",
"ParameterValue": "2026-09",
"ParameterType": 0,
"IsNull": false
}
]
}
Follow the PBRS parameter API documentation for the appropriate create or update operation. Preserve existing parameter identifiers where applicable and the complete intended parameter collection. Read back the saved values before executing the job.
For Customer Support, the illustrative department value is "202". Do not let two application requests overwrite a shared job’s settings while another delivery is running. Keep each approved department and month associated with the correct job or data-driven record.
During integration testing, open the delivered files and compare them with the manual baseline. Retain the department, month and execution reference so a delayed response can be investigated before requesting another copy. These examples have not been run against your reporting environment.
When a valid parameter still gives the wrong report
In Report Builder, check Dataset Properties > Parameters and the report’s filters. A renamed parameter can leave the query binding out of step; changing the subscription label will not repair it.
Check the parameter type as well as its name. A text month code and a DateTime value are different inputs. Blank text, null and an omitted value are also different. For dependent or multivalue parameters, use the representation supported by the report and the selected PBRS operation rather than assuming a comma-separated string or JSON array will work.
Keep the report author in the loop
If someone changes a parameter’s name, type or available values, review the delivery mappings at the same time. A working schedule still depends on the report accepting the selections it supplies.
Let the managers get on with planning training
At the next review, the Operations manager opens her team’s PDF and starts arranging time for the remaining courses. Customer Support’s manager can do the same for his team. You have a repeatable delivery to maintain, rather than a queue of reports to select and email by hand.
Begin with those two checked copies. Use native dynamic subscriptions where they meet your needs. When you want parameters, formats and destinations managed together, explore PBRS paginated report scheduling and the wider Power BI Report Automation workflow.
Use the evaluation guide to plan a trial around a report your managers already rely on.
Contributors:
Christian Ofori-Boateng
CEO, ChristianSteven Software
