Get certified for free when you join Fabric Data Days 2026 and dive into Fabric, Power BI, SQL, AI, and other essential data skills.
Join nowData Days is here! Join us now for 60+ days of learning, challenges, and connection. Learn more
This blog post covers the latest updates for Power BI Developers community. Don’t forget to check out our latest developer blog post, if you haven’t done so already.
Here is the list of updates for embedded analytics...
Service principal can replace master user and help customers build a more robust solution when going to production:
Power_BI_Developer_community_January_update
The new REST API enables you to set a new refresh schedule or override the configuration of an existing schedule. You can also retrieve the schedule of a dataset with ‘get schedule refresh’ API.
This API is very useful for setting or updating schedules on many datasets because you can use a script rather than configuring each manually. The API can also be useful if you want to make automatic changes according to a specific trigger. For example, multiple refresh failures will disable the scheduled refresh. With the new API, you can enable the refresh schedule again without the need to do it manually.
Please note that this API is relevant for cached (import mode) or composite models only.
Read more about it here.
Read more about it here and use the new ‘Insight to action’ showcase in the Microsoft Power BI Embedded Playground to experience the new feature.
Read more about it here and use the new ‘Personalize report design’ showcase in the Microsoft Power BI Embedded Playground to experience the new feature and get the code to implement it.
Read more about it here
1. DeveloperWeek- We have a booth and a dedicated session on Power BI Embedded analytics
Power_BI_Developer_community_January_update
2 . Power Platform Summit- 2 hours deep-dive session
Power_BI_Developer_community_January_update
If you are puzzled or run into a few issues, be sure to check our resources that can help you get by:
The 2.3 API introduces a new rendering events service providing the custom visual developer an ability to notify about rendering progress.
Use this API to ensure timely export to PPT and PDF execution of your visual.
This API improves the liability of the export to PPT and PDF features.
Future certification of custom visuals will require proper use of those rendering APIs, and please start using them if your visual is certified.
The new API contains three methods (started, finished or failed):
When the rendering is only going to start, the custom visual code calls to to indicate that rendering process was started.
If the rendering were completed successfully, the custom visual code immediately calls the renderingFinished method notifying the listeners that this visual image is ready.
In case that a problem occurred during the rendering process, preventing the custom visual to successfully complete it, the custom visual code will call to renderingFailed method notifying the listener that the rendering process didn't complete and also will provide an optional string for the cause of failure.
declare module powerbi.extensibility.v020300 {
export interface IVisualHost extends extensibility.IVisualHost {
…
eventService: IVisualEventService ;
…
}
/**
* An interface for reporting rendering events
*/
export interface IVisualEventService {
/**
* Should be called just before the actual rendering was started.
* Usually at the very start of the update method.
*
* @param options - the visual update options received as update parameter
*/
renderingStarted(options: VisualUpdateOptions): void;
/**
* Should be called immediately after finishing successful rendering.
*
* @param options - the visual update options received as update parameter
*/
renderingFinished(options: VisualUpdateOptions): void;
/**
* Called when rendering failed with optional reason string
*
* @param options - the visual update options received as update parameter
* @param reason - the option failure reason string
*/
renderingFailed(options: VisualUpdateOptions, reason?: string): void;
}
}
Note that there is a separation of storage access, so that only visuals of the same type can access the data stored.
For more information, please check here.
declare module powerbi.extensibility.v020200 {
export interface IVisualHost extends extensibility.IVisualHost {
…
storageService: ILocalVisualStorageService;
…
}
/**
* Provides an access to local storage for read / write access
*/
interface ILocalVisualStorageService {
/**
* Returns promise that resolves to the data associated with 'key' if it was found or rejects otherwise.
*
* @param key - the name of the payload to retrieve
* @returns the promise that resolves to the data required or rejects if it wasn't found
*/
get(key: string😞 IPromise<string>;
/**
* Saves the data to local storage. This data can be later be retrieved using the 'key'.
* Returns a promise that resolves to the amount of free space available to the caller after the save if there
* is any or rejects otherwise.
*
* @param key - the name of the payload to store
* @param data - the payload string to store
* @returns the promise resolves to the amount of free space available or rejects if there is no free space to store the data
*/
set(key: string, data: string😞 IPromise<number>;
/**
* Deletes data associated with 'key' from local storage.
*
* @param key - the name of the payload to remove
*/
remove(key: string😞 void;
}
}
If not join Ted and Chuck as they discuss the current state of the custom visual platform and explain how you can take advantage of the most recent enhancements.
As always, feel free to use all the communication channels at your disposal to connect with our team, share your thoughts and ask questions:
- Contact us for support- pbicvsupport@microsoft.comThat’s all for this post. We hope you found it useful. Please continue sending us your feedback, and it’s very important for us. Have an amazing feature in mind? Please share it or vote in our Power BI Embedded analytics Ideas forum, or our Custom Visuals Ideas forum.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.