New to Kestra?
Use blueprints to kickstart your first workflows.
Schedule a weekday 06:30 Power BI refresh with Kestra. Wait for completion, confirm in Slack, and page BI owners the moment a refresh fails.
The worst way to learn a refresh failed is from an executive staring at stale numbers in a 9am meeting. This blueprint runs io.kestra.plugin.powerbi.RefreshGroupDataset every weekday at 06:30, waits for a verified completion, and splits the outcome into two channels: a quiet Slack confirmation on success, and an immediate page to the BI owners on failure.
Schedule trigger (disabled by default) fires at 06:30 on weekdays, before the workday starts.refresh_dataset (io.kestra.plugin.powerbi.RefreshGroupDataset) authenticates with an Azure AD service principal (tenantId, clientId, clientSecret) and triggers the refresh. Because wait: true, it polls every 15 seconds for up to 45 minutes and fails the flow if Power BI reports the refresh as failed or the wait window is exceeded.notify posts the completed status to Slack, giving the team a daily heartbeat that reports are current.errors block posts a distinct, urgent Slack message the moment the refresh fails, pointing at the Power BI refresh history for the failing table or partition.Power BI's own scheduled refresh can send a failure email, but it disappears into inboxes and offers no execution history, no polling control, and no way to chain follow-up actions. Kestra gives the same schedule a verified wait, routed notifications, per-execution logs, and a place to later chain loads, checks, or exports around the refresh.
groupId) and dataset id (datasetId) of the model to refresh.AZURE_TENANT_ID: Azure AD tenant id.AZURE_CLIENT_ID: Azure AD application (client) id.AZURE_CLIENT_SECRET: Azure AD client secret.SLACK_WEBHOOK_URL: Slack incoming webhook URL.groupId and datasetId with your workspace and dataset ids.disabled: false on the weekday_mornings trigger and adjust the cron to your timezone needs.SLACK_WEBHOOK_URL secret so pages never mix with confirmations.