Forum Discussion

ForTheQuestions's avatar
ForTheQuestions
New Member
4 years ago
Solved

Subscriptions: Programmatically creating subscriptions

Does anyone know a way to programmatically create subscriptions? We already have the azure groups we just don't want to have to go through and create all the (50-100) subscriptions if there is a way to automate this. 

  • Anonymous's avatar
    Anonymous
    4 years ago

    Hi ForTheQuestions ,

    Base on my research, I didn't find a suitable way to programmatically create subscriptions. You can try using the method in the link below as a workaround to create a subscription.

    1. Power Bi subscriptions by Powershell

    You cannot programmatically trigger e-mail subscriptions. They are running according their schedule. But you can use Export to File API to export the report to a PDF file (or some other supported file type) and send it to someone. This means that the workspace must be attached to a dedicated capacity (Power BI Premium P SKU, Power BI Premium EM SKU or Power BI Embedded A SKU, and probably Premium per user) and you should maintain the list of "subscribers" on your own.

    Here is some PowerShell code, which uses Power BI Management CmdLets, which will export a report to PDF and send it by e-mail. You need to edit the parameters in the beginning of the code, like report ID, workspace ID, credentials, recipients, etc.

    #############################################################
    # Install-Module -Name MicrosoftPowerBIMgmt
    # Install-Module -Name MicrosoftPowerBIMgmt -Scope CurrentUser
    #############################################################
    Import-Module MicrosoftPowerBIMgmt
    ....
    #############################################################
    # E-mail settings
    #############################################################
    $emailSmtpServer = "smtp.office365.com"
    $emailSmtpServerPort = 587
    $emailTo = $username
    $emailSubject = "Here is your report"
    $emailBodyHtml = "Please find <b>your report</b> attached here."
    $emailUser = "[email protected]"
    $emailPassword = "SuperStrongPassword"
    $emailFrom = $emailUser
    $credential = New-Object System.Management.Automation.PSCredential($username, $password)
    Connect-PowerBIServiceAccount -Credential $credential
    $settings = @{ includeHiddenPages = $false; locale = "en-us" }
    $powerBIReportConfiguration = @{ settings = $settings }
    $export_body = @{ format = $format; powerBIReportConfiguration = $powerBIReportConfiguration }
    #'{
    #  format: "$format",
    #  powerBIReportConfiguration: { settings: { includeHiddenPages: false, locale: "en-us" } }
    #}'
    .....

    2. PowerAutomate

    Export and email a Power BI report with Power Automate

    Schedule, Export and Email Power BI Reports using Power Automate

    Best Regards

1 Reply

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi ForTheQuestions ,

    Base on my research, I didn't find a suitable way to programmatically create subscriptions. You can try using the method in the link below as a workaround to create a subscription.

    1. Power Bi subscriptions by Powershell

    You cannot programmatically trigger e-mail subscriptions. They are running according their schedule. But you can use Export to File API to export the report to a PDF file (or some other supported file type) and send it to someone. This means that the workspace must be attached to a dedicated capacity (Power BI Premium P SKU, Power BI Premium EM SKU or Power BI Embedded A SKU, and probably Premium per user) and you should maintain the list of "subscribers" on your own.

    Here is some PowerShell code, which uses Power BI Management CmdLets, which will export a report to PDF and send it by e-mail. You need to edit the parameters in the beginning of the code, like report ID, workspace ID, credentials, recipients, etc.

    #############################################################
    # Install-Module -Name MicrosoftPowerBIMgmt
    # Install-Module -Name MicrosoftPowerBIMgmt -Scope CurrentUser
    #############################################################
    Import-Module MicrosoftPowerBIMgmt
    ....
    #############################################################
    # E-mail settings
    #############################################################
    $emailSmtpServer = "smtp.office365.com"
    $emailSmtpServerPort = 587
    $emailTo = $username
    $emailSubject = "Here is your report"
    $emailBodyHtml = "Please find <b>your report</b> attached here."
    $emailUser = "[email protected]"
    $emailPassword = "SuperStrongPassword"
    $emailFrom = $emailUser
    $credential = New-Object System.Management.Automation.PSCredential($username, $password)
    Connect-PowerBIServiceAccount -Credential $credential
    $settings = @{ includeHiddenPages = $false; locale = "en-us" }
    $powerBIReportConfiguration = @{ settings = $settings }
    $export_body = @{ format = $format; powerBIReportConfiguration = $powerBIReportConfiguration }
    #'{
    #  format: "$format",
    #  powerBIReportConfiguration: { settings: { includeHiddenPages: false, locale: "en-us" } }
    #}'
    .....

    2. PowerAutomate

    Export and email a Power BI report with Power Automate

    Schedule, Export and Email Power BI Reports using Power Automate

    Best Regards