Friday, 8 August 2025

SharePoint Online Update: Major Changes to Custom Scripting and Classic Publishing Sites Coming September 2025

If you're managing SharePoint Online environments, there's a significant change on the horizon that you need to prepare for. Microsoft has announced important updates to custom scripting capabilities and Classic Publishing site creation that will take effect on September 15, 2025. Here's everything you need to know about these changes and how to prepare your organization.

What's Changing?

Microsoft is implementing three major changes that will fundamentally alter how custom scripting and Classic Publishing sites work in SharePoint Online.

  1. Custom Scripting Gets Disabled by Default

    Starting September 15, 2025, custom scripting will be automatically disabled for several SharePoint Online templates. This means the DenyAddAndCustomizePages setting will be set to $true by default for:

    • BLANKINTERNETCONTAINER#0 (Classic Publishing Portal Site)
    • CMSPUBLISHING#0 (Classic Publishing Site)
    • BLANKINTERNET#0 (Classic Publishing Site Blank)
    • CSPCONTAINER#0 (SharePoint Embedded Site)

      This change is driven by security considerations around ungoverned scripting, as Microsoft continues to tighten security controls across its platform.

  2. No More New Classic Publishing Sites

    Perhaps the most significant change is that users will no longer be able to create new Classic Publishing site collections or activate publishing features in existing sites. This restriction applies to both user interface interactions and API calls.

    The following templates will no longer be available for new site creation:

    • Publishing Portal Site
    • Publishing Site
    • Publishing Site Blank
    • Enterprise Wiki
    • Enterprise Search Center
    • Site Directory
    • News Home Site
    • Product Catalog
    • Report Center
    • Topic Area Template

      Important note: If you already have Classic Publishing sites, don't panic. Existing sites remain completely unaffected and can continue normal operations, including creating subsites.

  3. Improved Property Bag Management

    There's some good news in these updates too. Microsoft has introduced a new feature that allows users to manage site property bag values without needing to enable custom scripting. The new
     AllowWebPropertyBagUpdateWhenDenyAddAndCustomizePagesIsEnabled  
    
    setting works at both tenant and site levels, making property bag management much more straightforward.

How This Impacts Your Organization

These changes will have different effects depending on how your organization currently uses SharePoint:

For Custom Scripting Users: 
When custom scripting is disabled, several features become unavailable:
  1. Script editor web parts stop working
  2. Custom master pages and page layouts can't be created or modified
  3. Various other customization features are blocked

For SharePoint Administrators: 
You'll lose the ability to create new Classic Publishing site collections or enable publishing features at the site collection level through standard methods.

For End Users: 
The impact will primarily affect those who rely on custom scripts and Classic Publishing features for their daily work.

What You Need to Do Right Now

Microsoft recommends taking several proactive steps to prepare for these changes:

  1. Communicate with Your Users
    Start informing owners of Classic Publishing sites about these upcoming changes immediately. This gives them time to plan and potentially migrate to Modern SharePoint sites, which Microsoft strongly recommends.

  2. Consider Migration to Modern Sites
    Microsoft provides comprehensive guidance for modernizing SharePoint environments. Modern sites offer better performance, security, and user experience compared to Classic Publishing sites. Now is an excellent time to evaluate your current sites and plan migrations where appropriate.

  3. Understand Your Temporary Options
    Microsoft has provided several PowerShell commands that offer temporary relief if you need more time:

    Delay enforcement for your entire tenant until March 15, 2026:
     Set-SPOTenant -DelayDenyAddAndCustomizePagesEnforcementOnClassicPublishingSites $true  
    Allow temporary custom scripting for a specific site (24-hour duration):
     Set-SPOSite <SiteURL> -DenyAddAndCustomizePages $false  
    Allow creation of new Classic Publishing sites (if absolutely necessary):
     Set-SPOTenant -AllowClassicPublishingSiteCreation $true  

  4. Update Your Tools
    Make sure you're running the latest SharePoint Online Management Shell (version 16.0.26211.12010 or higher) to use these new commands.

The Bigger Picture

These changes are part of Microsoft's broader strategy to modernize SharePoint Online and enhance security. Classic Publishing sites were built for an earlier era of web development, and Modern SharePoint sites offer significant advantages:
  1. Better mobile responsiveness
  2. Improved performance and loading times
  3. Enhanced security features
  4. Better integration with Microsoft 365 services
  5. More intuitive user interfaces

Planning Your Response

Here's a practical approach to handling these changes:

Short-term (Before September 2025):
  1. Audit your current Classic Publishing sites
  2. Identify which sites truly need custom scripting
  3. Plan communications to affected users
  4. Test Modern site alternatives for critical functionality

Medium-term (September 2025 - March 2026):
  1. Use the temporary opt-out period to complete migrations
  2. Train users on Modern SharePoint features
  3. Update any automated processes that create Classic Publishing sites

Long-term (After March 2026):
  1. Complete migration to Modern sites where possible
  2. Maintain only essential Classic Publishing sites with proper governance
  3. Regularly review and optimize your SharePoint environment

Final Thoughts

While these changes might seem disruptive, they represent Microsoft's commitment to providing a more secure and modern collaboration platform. The temporary opt-out options give organizations breathing room to plan and execute transitions thoughtfully.

The key is to start planning now rather than waiting until September. Use this time to evaluate your current SharePoint usage, communicate with stakeholders, and develop a migration strategy that works for your organization.

Remember, existing Classic Publishing sites will continue to work normally, so there's no immediate crisis. However, proactive planning will help ensure a smooth transition and might even lead to discovering better ways to accomplish your current tasks using Modern SharePoint features.

Tuesday, 29 July 2025

How to get started with Claude AI?

Until recently, I was like many of us here—using ChatGPT for everything. It was my daily productivity companion. But last week, I attended a free seminar from GrowthSchool, and it opened my eyes to another AI tool: Claude AI by Anthropic.

What is Claude AI?

Claude is a conversational AI assistant similar to ChatGPT but with a different approach and tone. It’s designed to help with:
  • Writing and editing
  • Summarizing long PDFs
  • Brainstorming ideas
  • Coding assistance

The tool is named after Claude Shannon, the father of information theory, and is built with a focus on safety and clarity in conversations.

How is it different from ChatGPT?

Here’s what I found interesting:
  • Gentle and clarifying tone: Claude often asks clarifying questions before answering and responds carefully, which helps when you are structuring your thoughts.
  • File upload even in the free version: You can upload PDFs and documents and ask it to summarize or extract insights without needing a paid plan.
  • Great for reading and summarizing long documents: This is one area where Claude felt smoother compared to my experience with ChatGPT Free (which doesn’t allow file uploads).
  • Different perspective: Using both Claude and ChatGPT together gives different angles when brainstorming content, strategies, or writing hooks.
Free Version Differences:

ChatGPT Free:
  • Uses GPT-3.5 (GPT-4.0 available for limited use)
  • No file upload in free plan
  • Direct and flexible tone
Claude Free:
  • Uses Claude 3 Haiku (lightweight model)
  • Allows file uploads and chatting with documents
  • Gentle, clarifying conversation style

How to get started with Claude AI?

If you want to try Claude AI, it’s simple:
  • Go to claude.ai (the official website).
  • Create a free account using your email.
  • Start chatting or upload a PDF to experience how it handles document summarization and Q&A.
  • Try using it side-by-side with ChatGPT for a week to see which tasks feel smoother on Claude.
Conclusion:

You don't necessarily need to choose one over the other. Many power users find that Claude and ChatGPT complement each other well:
  • Use ChatGPT for quick answers, brainstorming, and when you need fast responses.
  • Use Claude for complex analysis, creative work, research, and when you need more thoughtful, nuanced interactions.
Exploring Claude has been a small but valuable addition to my workflow, and it might be worth adding to yours too.

Friday, 20 June 2025

How to get CSV file content stored in SharePoint Online using Power Automate?

Issue:

Recently I was working with CSV file for automation process. The files were stored in SharePoint Online document library. I thought with “Get File Content” action, I will be able to get the CSV file content directly. But the issue was it was giving me outcome in some other format:



Analysis:

When you use “Get File Content” action with SharePoint online, this actually pass you the connect in Base64 string. To see the actual content, we need to convert the content from Base64string to string.

Solution:

To convert the content, I used a compose and in value, I passed below expression:

 base64tostring(outputs('Get_file_content')?['body']['$content'])  





Using this, I was able to see actual content of the file:


Wednesday, 16 April 2025

React Responsive Carousel auto play doesn't work in SPFx

Issue:

Recently, we were developing a carousal feature in SPFx webpart. We got react component code from UI Team which has used React Responsive Carousel with sample data, and it was working fine. We needed to make the carousal dynamic and fetch data from SharePoint list.

When we incorporated the changes, we faced a strange issue. When we provide the dynamic data, the carousal will load only last item and doesn’t rotate. But if we pass static data, it worked fine.

Analysis:

As the webpart working with static data, we were not sure it was issue from the component. It meant there was something missing from the implementation part. So we started looking in to online resources. One such link mentioned we needed to explicitly give the CSS path in the import as follow:

 import 'react-responsive-carousel/lib/styles/carousel.min.css'  

It didn’t change the output. So, we thought if dynamic loading might be causing the issue, then we can generate HTML first and directly pass it to the component. So, we changed our component code from below:

 public render(): React.ReactElement<IReactCarousalProps> {  
 const images = this.state.carousaldata;  
 return (  
 <div className='min-h-screen'>  
 <Carousel showArrows={true} showThumbs={true}>  
 {images.map((url, index) => {  
 <div key={index}>  
 <img src={url.name} />  
 </div>;  
 })}  
 </Carousel>  
 </div>  
 );  
 }  

And updated as below:

 public render(): React.ReactElement<IReactCarousalProps> {  
 var images = this.state.carousaldata;  
 var htmlBody = “”;  
 images.map((url, index) => {  
 htmlBody+=” <div key={index}><img src={url.name} /></div>”  
 })  
 return (  
 <div className='min-h-screen'>  
 <Carousel showArrows={true} showThumbs={true}>  
 {htmlBody}  
 </Carousel>  
 </div>  
 );  
 }  

But this completely hide the component and showcase nothing on the page (Though earlier code showcase at least last item😊). But this failure confirmed that fault is not within the implementation but is from component itself and after that we have gone through the repository issue and find out similar issue and found the resolution.

Resolution:

So, we found that it might be version issue. Many people have mentioned that downgrading the version to lower version (3.1.33) has resolved the issue for them.

But in one such comment we found that there is an alternative too. If the carousal is initialized with zero content, it will break. If it is initialized with proper data, it will work properly. So, the user has suggested that we need to check before binding component, it our data is not there, do not bind the component.

The sample code will look like:

 public render(): React.ReactElement<IReactCarousalProps> {  
 const images = this.state.carousaldata;  
 return (  
 <div className='min-h-screen'>  
 { images.length > 0 ? (  
 <Carousel showArrows={true} showThumbs={true}>  
 {images.map((url, index) => {  
 <div key={index}>  
 <img src={url.name} />  
 </div>;  
 })}  
 </Carousel>) : null}  
 </div>  
 );  
 }  

Though the user input was done on 2019, and the issue persist, I thought it would be helpful to someone with same issues.

References: 
  1. React Responsive Carousel Sample - https://github.com/leandrowd/react-responsive-carousel
  2. Issue resolution link - https://github.com/leandrowd/react-responsive-carousel/issues/321
  3. CSS Reference - https://stackoverflow.com/questions/66554854/react-responsive-carousel-is-not-displaying-properly

Thursday, 10 April 2025

How to back up Skype data?

As Microsoft has announced that Skype will be retiring in May 2025. This will impact free and paid skype users but not Skype for Business users.

Link - Skype is retiring in May 2025: What you need to know - Microsoft Support

So, with the end of Skype, Microsoft is asking you to use Teams for free with same credentials. You can start working with Teams with login into skype and clicking start using team:



But for future safety, we should keep our back up of files. To download all your shared files in Skype, you can visit below link:

https://go.skype.com/export

It will open new page where you have 2 options:
  1. Conversations
  2. File


You can select files or both and click submit request. Based on your data size the export will be available in .tar file.




This was quick blog about data backup. If you need any other details, you can visit below FAQ page link:

How do I export or delete my Skype data? - Microsoft Support