SUGCON INDIA 2023 Weddings in the Cloud with Sitecore Connect

Last month (24th-25th Aug, 2023) I got the opportunity to attend and present at Sitecore User Group Conference India (SUGCON) 2023 event at The Grand, New Delhi.

The event was very well organized and Kudos to the organizers and community for giving us this wonderful learning experience. It was two days full of Sitecore Excellence.

Day 1 (24th Aug, 2023) started with the Paid training on “Introduction to XM Cloud Pages”, it was an informative and great 2 hrs session (8 AM-10 AM) to start your SUGCON. I also attended this session and found it really useful.

SUGCON India 2023 Agenda

Agenda was quite impressive and there were sessions related to Headless, XM Cloud, GraphQL etc, It wasn’t possible to attend all the sessions as there were multiple sessions running in parallel, but we tried to attend and get an overview from most of the sessions as much as possible.

Full agenda can be checked here- https://india.sugcon.events/Agenda

Some of the snapshots:

Finally…About Our Session: 🙂

I along with my Colleague Sandeep Bhatia also got the opportunity to present and share our learnings with the community around Sitecore Connect.

Session Agenda : Weddings in the Cloud with Sitecore Connect!

  • Introduction
    • Why Use Connect
  • Connect Portal
    • Building Blocks
    • Using Webhooks
  • Demo
    • Workflow
    • Custom Connector
    • Connector Types

Here are some of the data points from our Session:

  • Composable DXP Architecture and where Sitecore Connect fits in.
  • Why should we go with Sitecore Connect for e.g. Built In Integrations, Analytics, Automaton Friendly etc. are some of the supporting reasons.
  • Introduction to Connect Portal.
  • Introduction and Understanding of Sitecore Connect Building Blocks which includes:
    • Connections
    • Recipes
    • Triggers and
    • Actions

Demo Time:

As part of demo, we used Sitecore Connect low-code/no-code approach to Sync data between Sitecore and Sitecore Content Hub One leveraging Sitecore Webhooks.

In addition to that, we also discussed how we can create custom connectors when there are no connector(s) available to facilitate Integration between two Systems.

Some of the snapshots from our session 🙂

Overall, it was a wonderful experience for all Sitecore enthusiasts to share and learn and at the same time do some networking within the community.

At last I would like to thank all the organizers for organizing this very own event and making it a success, looking forward for the next one.

Happy Learning 🙂

How to create your first Content in Sitecore Content Hub ONE

Recently I got the opportunity to explore Sitecore Content Hub ONE while working on one of the POC, so ,thought of sharing how you can get started and create your first content in Content Hub ONE.

In this post we are going to talk about Sitecore Content Hub ONE Introduction and how to create our first content in Content Hub ONE platform, in the coming posts we will explore and see how we can leverage Content Hub ONE to deliver multichannel experiences via preview and delivery APIs.

What is Sitecore Content Hub ONE?

Sitecore Content Hub ONE is a cloud-native, agile headless Content Management System (CMS), for developers and marketers to efficiently launch centrally managed, reusable omnichannel experiences.

With Content Hub ONE, you can quickly model, author and deliver content of any type, for any channel. Business users can manage content using a simple modern user interface, while developers can make use of comprehensive APIs and SDKs to create and deliver omnichannel experiences.

We have preview and delivery APIs available to consume data across multiple channels and touch points and also helps brand organize content in centrally cloud managed system.

Features of Sitecore Content Hub ONE

Some of the features Content Hub ONE provides are:

  • User Interface for creating structured and modular content.
  • User focused Content Authoring Experience.
  • Preview and Delivery GraphQL API delivered through Sitecore Experience Edge.
  • SDK for developers to leverage a rich set of developer tools.
  • Command line interface (CLI) to serialize and source control content and content types
  • Media Management

How to access Sitecore Content Hub ONE?

If you have access to Sitecore Cloud Portal you can login there and access all the features of Content Hub ONE, right from creating the content and consuming the content via Preview and Delivery APIs.

Note- If you have access to Sitecore Cloud Portal but not seeing Content Hub ONE, in this case, you can reach out to your Sitecore team to get you access to Content Hub ONE and you should be fine.

Sitecore Content Hub ONE Dashboard

After successfully login to Cloud Portal and Content Hub ONE App we get different options.

Options include to:

  • Model your content (Creating content types)
  • Create your content (Creating content based on types available)
  • Upload media items and
  • Consuming content across channel(s).

How to Create Content type:

On the Content types page, we see the exiting content types and also option to create new content type, In order to create a new content type just click on “Add type” button on the right and start creating the content type.

Just fill in the required details like Name and proceed to add fields to this content type, you can add as many fields your content type demands based on the field types available.

In this case, we are going to add content type called “Product” with EAN as one of the field to it.

We have different fields types available like Simple line text, Rich Text, Number and so on.. as we can see here, field types available here are not as rich as we see in Sitecore, but, we can expect this list to grow in future.

Once you are done with adding fields, just click on save and your content type is ready.

How to Create Content:

Once we have content type ready to create content from, we can proceed creating content items.

Navigate to Content page and click on “Add content” to start adding content based on the selected content type. Once you click on “Add content” you need to select the content type and then you will be presented with the UI with all fields which are available for that specific content type.

In this case, we can see we added “EAN” as one of the field for “Product” content type and that’s what is presented while creating product content.

Just add Name and EAN for that product and click on Save, with this we are done creating a simple content based on Product Content type.

Similarly, we can add as many Content types and content in the platform including media assets as well.

In the future posts we will cover some more aspects of Content Hub ONE with respect to content Management APIs and delivery.

Happy Learning 🙂

References:

https://www.sitecore.com/blog/content/what-is-content-hub-one

Sitecore Security Bulletin SC2023-003-587441

Recently Sitecore published security bulletin which addresses vulnerabilities in Sitecore software which lead to remote code execution vulnerability and non-authorized access to information.

There are two solutions provided by Sitecore, Permanent and Temporary, Important thing to note here is that this vulnerability also impact Sitecore version 8 i.e (8.2 rev. 160729 (Initial Release)) which has already entered Sustaining Support Phase– so, we can apply Temporary solution to fix the issue, Sitecore however recommends upgrading to the later versions and applying the corresponding hotfix.

Full details around Sitecore Product Support Lifecycle can be found here- https://support.sitecore.com/kb?id=kb_article_view&sysparm_article=KB0641167

So, if you are in Sitecore version 8 and above, you can plan to apply the fixes as soon as possible, for more details on this Security bulletin please visit Sitecore support page- https://support.sitecore.com/kb?id=kb_article_view&sysparm_article=KB1003018

Also, to get latest information regarding Security bulletin from Sitecore , visit https://support.sitecore.com/kb and Subscribe for Security Bulletin.

Hope this helps.

Happy learning 🙂

Sitecore MVP 2023

Honored to have been awarded Sitecore MVP 2023 under Technology category, 6th time in a row! Thanks Sitecore for this incredible recognition and appreciating the community contributions made last year.

I would like to thanks my family, my community friends, my Valtech colleagues and Sitecore for this.

Congratulations to all SitecoreMVP 2023 Award winners! 

Looking forward to continuous community contribution in 2023.

#LearnSitecore

Security Vulnerability with Microsoft Sql Client 

Few days back we were discussing internally on something and this topic of Security Vulnerabilty came, so, if you are not aware , there is a security Vulnerabilty which has been released by Microsoft few days back with Microsoft Sql Client.

About the Vulnerabilty Description

“Microsoft is releasing this security advisory to provide information about a vulnerability in .NET, .NET Core and .NET Framework’s System.Data.SqlClient and Microsoft.Data.SqlClient NuGet Packages.

A vulnerability exists in System.Data.SqlClient and Microsoft.Data.SqlClient libraries where a timeout occurring under high load can cause incorrect data to be returned as the result of an asynchronously executed query.”

So what changes are required for Sitecore solution:

As Sitecore is built on top of .Net, there will be some obvious changes which Sitecore probably will work and apply the patch or hotfix and release it to customers and vendors soon.

But, what about the custom solutions we have put in place where our solution is interacting with SQL Server directly, some cases could be:

  • Rating or Reviews module (if you are storing reviews externally in custom SQL database)
  • User Generated Content(UGC) (if there are some sort of user data like blogs/comments etc.. stored in custom SQL database)
  • etc..

In this case we would have make those changes to our solution so that it is aligned with the patch released by Microsoft to fix the Vulnerability.

Also, as per the security advisory released, if you are not talking to Microsoft SQL Server from your application directly you are not affected by this vulnerability.

For more details you can refer the below link:

https://github.com/advisories/GHSA-8g2p-5pqh-5jmc#affected-packages

So, i think we should think about making those changes as recommended in the advisory and apply the fix.

Hope you find this helpful.

Happy learning 🙂

Content Hub DAM Enterprise Mock Training Summary

Last week I completed second part of Content Hub Mock training i.e. Sitecore Content Hub DAM Enterprise Mock, it was very detailed and informative and include deep dive sessions for some of the topics we already covered during Professional, but very insightful, so thought of sharing my experiences from this training for those who are planning to take this training in near future.

It was a 5 days training and covered topics/subjects like:

  • Domain Model
  • Basic Schema Configuration using sample Domain Model.
  • Configuration about Advanced Pages Setup.
  • Advanced Data Migration topics
  • Building Custom Page Setup
  • Advanced Security Setup and Policies
  • Workflow Setup and Configurations.
  • Small Intro to Print Templates etc..

As a prerequisite for this training- you should have successfully completed the Sitecore Content Hub Fundamentals digital course form Sitecore Learning portal.

Sessions were organized well and you get enough time to practice and Implement the topics covered, You also get time to raise/ask any questions you might get while you Implement your practice sets. For the enterprise training also you get your separate sandbox to do all your stuffs.

Please make sure to test the access for your sandbox as sometimes you might not have access for the same, it’s not a big deal and you get this resolved quickly but it’s better to test it before the training to save some time.

Off all the topics covered I liked most Domain Model and Advanced Security topics (I found advanced security topic interesting and little complex but in the end was all good).

Same as professional training, here also trainer had administrator rights on our specific sandbox so that if something goes wrong while working/practicing specific task, trainer can go to your sandbox and verify things as required and assist you.

In the fifth day i.e. last day of your training you get to clear any doubts you have from some the topics already covered and make sure you are ready before you submit your sandbox for the review.

Overall my experience from both Professional and Enterprise Mock training is great and I recommend to take this training and go for it if you are planning to work on Content Hub.

You can read about my experiences and some notes here from Content Hub Professional Mock training.

As a next step I will look to complete Content Hub Admin and Developer certifications, I will share my experiences and notes as soon as I am done with the certifications.

Hope you find this helpful.

Sitecore Content Hub for Administrators Features Walkthrough

In my previous post I discussed about my experience on taking/completing Sitecore Content Hub Professional Mock training and what topics were covered, just to give a brief recap following topics were introduced during the training:

  • Schema Configuration
  • UI Configuration
  • Themes configuration
  • Media Processing
  • Digital Rights Management
  • Data Migration
  • Security
  • Reporting etc…

Post to this training, I also created few videos focused on Sitecore Content Hub for Administrators to give some reference points on how certain features of the platform can be used and configured in Content Hub DAM by Administrators.

Some of the recordings/topics for ref:

Hight level features walkthrough of Content Hub DAM:

How to create assets in the system:

Content Hub DAM Custom fields and Taxonomies

You can find the playlist here which can be referred when you have time- https://www.youtube.com/watch?v=bL95sGzRh6k&list=PLgr04NsypZYBeaZoJ7tEKJThTKS7CDfha

Hope you will find these resources helpful and should give you a good starting point if you are heading towards your Content Hub Journey.

Let me know if you have any questions around this.

Happy learning 🙂

Content Hub DAM Professional Mock Training Summary

Last month I got the opportunity to enroll for Sitecore Content Hub DAM Professional Mock training, it was very informative and insightful, so thought of sharing few things from that training for everyone’s reference here who are planning and yet to take the training.

It was a 5 days training and covered topics/subjects like:

  • Schema Configuration
  • UI Configuration
  • Themes configuration
  • Media Processing
  • Digital Rights Management
  • Data Migration
  • Security
  • Reporting etc…

Some of the topics from DEV side were:

  • Working with External components
  • Working with Mass Edit using scripts
  • How Authentication works and etc.

As a prerequisite for this training- you should have successfully completed the Sitecore Content Hub Fundamentals digital course form Sitecore Learning portal.

Sessions were well organized with two short tea and a lunch break. We got the opportunity and time to explore all the above mentioned topics and few others practically in our specific Sandbox environment which was spinned up for each trainee.

First 2.5-3 days of training were focused on Administrator side of Content Hub and remaining 2-2.5 days for Developer related topics.

Trainer also had administrator rights on our specific sandbox so that if something goes wrong while working/practicing specific task, trainer can go to your sandbox and verify things as required.

There was no rush and you get ample time to clear any doubt(s) you might have and complete all your practice tasks and then only trainer moves forward so that you are not missing anything here.

In the last day of the training you get time to clear any doubt(s) you have from the topics covered before and if there are no more doubts to clear, you will be given time to review your sandbox.

I found this training very useful and insightful and can say that I am already looking forward to make my hands dirty with the knowledge I gained from this training.

But that’s just one part of it, we still have another part to this i.e. Sitecore Content Hub DAM Enterprise Mock Implementation which we still have to plan.

There are two ways to enroll for this training , you can do/purchase it individually for Pro and later for Enterprise or you can just get/enroll for the bundle which includes both (with this you get some discount) you can reach out to your Sitecore representative on how you can proceed with this.

I will share my feedback and experiences when I complete the Enterprise Mock Implementation for everyone’s ref.

Hope it helps.

Happy learning 🙂

Sending email with customized email body using Sitecore forms

Did you work on a requirement to send email to your partners/visitors in Sitecore? yeah… I know that’s a pretty common requirement right? we can create custom forms and send emails or even a better solution is to leverage Sitecore forms and use/create actions to send emails.

In Sitecore we can use available Send Email Submit Action to send the email, In the below screen shot we can see the available option to configure the Send Email action for Submit button.

So far so good, now let’s take an example where we want to send an email with the customized message body, how to go there? We have solution like using MailMessage class and setting message properties like Subject, Body, from address etc.. and then create SMTP client to send email.

We can also leverage SendEmail submit action and update the message body to send custom data, this would be useful for such requirements like where we want to send some activation link, data to our end users for confirmation.

Let’s see how we can use second option and send customized message body.

Here are the steps required:

  • Create a class and inherit that class with Sitecore Forms SubmitActions SendEmail class.
public class SendCustomEmail : Sitecore.ExperienceForms.Mvc.Processing.SubmitActions.SendEmail
  • Initialize a new instance of the class you created above.
public SendCustomEmail (ISubmitActionData submitActionData)  : base(submitActionData)
        {
            
        }
  • Next step is to override Execute method with SendEmailData/FormSubmitContext parameters, set the SendEmaiData Body property using custom value and perform other business rule(s) as per project/business requirements.
protected override bool Execute(SendEmailData data, FormSubmitContext formSubmitContext)
        {
            Assert.ArgumentNotNull(formSubmitContext, nameof(formSubmitContext));

            if (!formSubmitContext.HasErrors)
            {
                // Process formSubmitContext here...
                var emailBody = "Custom Email Message"; // Set custom email body message here...
                data.Body = data.Body.Replace("#email#", emailBody);
            }

            return true;
        }
  • In the above step we have set the Body property of SendEmailData class and replaced that value with a placeholder text which is set as part of Sitecore form we created.
  • Next step is to call base class Execute method and you are done.
base.Execute(data, formSubmitContext);
  • After this we need to create a new submit action in Sitecore and configure the required fields like Model Type, Error Message and Editor.
  • Once this is done you just need to select the newly created submit action as part of the Submit button and you are good to go.

Here is the full code for ref.

// <copyright file="SendCustomEmail.cs" company="Sandbox">
// Copyright (c) Sandbox. All rights reserved.
// </copyright>

namespace Sandbox.Feature.Actions
{
    using Sitecore.Diagnostics;
    using Sitecore.ExperienceForms.Models;
    using Sitecore.ExperienceForms.Mvc.Models.SubmitActions;
    using Sitecore.ExperienceForms.Processing;

    
    public class SendCustomEmail : Sitecore.ExperienceForms.Mvc.Processing.SubmitActions.SendEmail
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="SendCustomEmail"/> class.
        /// </summary>
        /// <param name="submitActionData">submitActionData.</param>
        public SendCustomEmail(ISubmitActionData submitActionData)
            : base(submitActionData)
        {
        }

        /// <summary>
        /// Executes the action with the specified <paramref name="data" />.
        /// </summary>
        /// <param name="data">The data.</param>
        /// <param name="formSubmitContext">The form submit context.</param>
        /// <returns><c>true</c> if the action is executed correctly; otherwise <c>false</c>.</returns>
        protected override bool Execute(SendEmailData data, FormSubmitContext formSubmitContext)
        {
            Assert.ArgumentNotNull(formSubmitContext, nameof(formSubmitContext));

            if (!formSubmitContext.HasErrors)
            {
                // Process formSubmitContext here...
                 var emailBody = "Custom Email Message"; // Set custom email body message here...
                data.Body = data.Body.Replace("#email#", emailBody);
                base.Execute(data, formSubmitContext);
            }

            return true;
        }
    }
}

Hope this helps!

To know about Sitecore forms, please refer Sitecore documentation for details- https://doc.sitecore.com/en/users/90/sitecore-experience-platform/sitecore-forms.html

Also If you want to checkout my latest Sitecore videos, you can do so here on Youtube- https://www.youtube.com/c/ankitjoshi2409

Happy learning 🙂