Fortifying Sitecore Web Applications: 7 Best Security Practices & Solutions

In the ever-evolving landscape of web development, ensuring the security of your web applications is paramount. This holds especially true for platforms like Sitecore, a powerful content management system used by many organizations worldwide. To protect your Sitecore web applications from potential threats and vulnerabilities, it’s essential to implement robust security standards. In this blog, we will delve into the key aspects of security standards for Sitecore web applications and explore the best practices to fortify your digital assets.

Security Standards – Sitecore Web Application

Security plays an indispensable role in safeguarding any .NET application, ensuring the perpetual safety and integrity of your servers and applications. Regular employment of security tools and site scans is essential to ascertain that best practices are consistently upheld, preserving the sanctity of your website and environments.

Read More

Oracle Eloqua Pros and Cons | Sitecore Integration | Eloqua Series | Part 8

Our Eloqua Series is coming to an end, where we’ll discuss Eloqua’s pros and cons as well as the integration with Sitecore CMS.

Listing all the blogs of the Eloqua Series:
Oracle Eloqua Reports to Google Spreadsheets | Eloqua Series | Part 7
10 Email Marketing Best Practices | Eloqua Series | Part 6
Eloqua Insight | Oracle Business Intelligence (BI) | Eloqua Series | Part 5
Custom Data Objects [CDO] | Eloqua Series | Part 4
Eloqua Forms | Oracle Eloqua Series | Part 3
Email Campaigns | Oracle Eloqua Series | Part 2
Oracle Eloqua – Marketing Automation Review | Part 1

Oracle Eloqua

Eloqua is one of the leading email marketing platforms. Below are the Pros and Cons of Eloqua.

Pros:
API IntegrationsEloqua Rest API integration is incredibly straightforward to set up and customize with any system. The main approach for the integration should be Forms, as I stated in an earlier blog post. There are two types of integration with Eloqua, one for the Sitecore Forms and the second for System forms or fixed forms like registration, login, newsletter subscription, etc,. In our case, we have a Sitecore Submit Action called “Submit to Eloqua” that is linked to Eloqua. We construct a form on Sitecore Forms, and the exact same form is built on Eloqua. We then connect the two forms using the Sitecore Submit Action, passing the correct Eloqua Form ID and other fields in the necessary JSON format. And for System forms obviously, we need Developers to set up a one-time configuration.

Bulk API Integration – Earlier I created the utility to transfer the users in Bulk from the SQL database to Eloqua. It was really easy to understand and implement the Bulk API Integration. This is used to send large amounts of data to Eloqua. I also created a scheduler that runs every day at midnight and sends the daily new users to Eloqua.

Read More

Sitecore Submit Action – Send Notification Email using Sitecore Dispatch Manager

I’m going to walk you through how to use Sitecore Dispatch Manager to implement Send Notification Email for Submit Action in Sitecore Form Submissions.

Let’s go ahead and create Form Submit Action.

Sitecore Item Path: /sitecore/system/Settings/Forms/Submit Actions/Send Notification Email

Add “Send Notification Email” action on the Submit button.

Read More

5 Sitecore Interview Tips by Nilesh Thakkar

Are you looking for a change and preparing for an Interview OR Do you need any tips for Sitecore Interview?

If so, then you must watch this video before appearing for an Interview. I got a chance to have a quick chat with Nilesh about the interview tips and see what he says in the video.

Here are the Top 5 Tips shared by Nilesh Thakkar:

  1. Know More About Your Interviewer
  2. Show Your Problem Solving Skills
  3. Know How Sitecore Works Behind The Scenes
  4. Show Your Right Attitude
  5. How Do You Handle Conflicting Situation?

Happy Job Hunting!

Sitecore Watch Face | Google Wear OS

After buying Google Wear OS-powered smartwatch, an idea came to my mind to personalize the watch face with Sitecore logo.

As it’s round, a watch face will definitely fit the round dial.

Wear OS Watch Face App is now on the Play Store for you as well, if you are having Google Wear-OS powered smartwatch — go and check out this simply designed watch face.

Sitecore Watch Face

On your watch Play Store, search for Sitecore and you’ll find Sitecore Watch Face.

https://play.google.com/store/apps/details?id=com.nikkipunjabi.sitecorewatchfaces&rdid=com.nikkipunjabi.sitecorewatchfaces

If you know Android Development and would like to contribute, you are free to play around with the project.

https://github.com/nikkipunjabi/SitecoreWatchFace

The comment section is open for your suggestions/feedback. 🙂

Enjoy Sitecore Watch Face!  😉

Automate Sitecore Workflow Approval Process and Email Report

Automation is the key to tech. It is the process by which tasks which were previously done by humans, are performed entirely by machines. In this post, I shall take you through how to automate Sitecore Workflow Approval for a more efficient way of working.

Why do you need Auto Approve?

Every project has a different set of requirements, and one of the requirements I was tasked to do was to automate the Workflow approval process. You may think, what is the purpose of having a workflow if you want things to be approved automatically. Well, as mentioned earlier, there are different scenarios that may deem such a requirement necessary.

It is not because of the risk in approving content that may be incorrect. It is due to that fact that there are a lot of items in the workflow coming in from the translation agency and in order to verify the content, it requires physical approval to push on to Stage. The automation to be implemented here will help us to know that translations are coming in and send it to the respective content team member to verify. Once verification is done, then in one simple, a user can push it Live.

Read More

Sitecore and GatherContent Integration | Part-2 | Challenges and Solution

In an earlier post, I wrote an overview on Sitecore and GatherContent Integration Overview and the challenges we faced. In this post, you’ll see many other challenges that we faced with GatherContent and Sitecore Integration and how to crack them.

I got the source code of GatherContent Module thanks to the devs. It’s also available on GitHub.

We faced many challenges with it, but we managed to fix the issues one by one and get it to work. Some of them were fixed by the GatherContent Dev Team.

Most of the changes were done in GatherContent.Connector.SitecoreRepositories project.

Challenges:

  1. Different folder structure
  2. Zero-width space
  3. Blank space in GatherContent
  4. Sitecore General link, Number and Checkbox support
  5. Alt Text for Images
  6. Redirect Rule Issue

Read More

Sitecore Package Assistant | Sitecore Module

Hey Sitecore Devs,

This module is for you. It will help you track Sitecore items which you worked on and create a package of it easily. If you want to skip any item, you can just ignore it and that will never be tracked. This will be helpful when you are working on many items in the Sitecore and once you are done creating the module you can easily package it using Sitecore Package Assistant.

The idea for this module popped to Saad Ansari and he shared it via blog post: Sitecore Package Creator – The untracked/unpackaged changes while creating the packages

I took his views and started conversation with him for creating a module of his idea. We started one by one with the requirements and implimented this module.

Pre-requisite: This module works based on Sitecore PowerShell Extensions. So before you install this module it is must to have Sitecore PowerShell Extensions.

Download: Sitecore Package Assistant

Source Code: GitHub

This module will:

  • Track item on items created and saved.
  • It will show an icon in the gutter for the items which are getting track.
  • You can track/untrack any item once it is updated.
  • You can easily create the package of the items which have been tracked and on complete, the tracking is removed.

After installation, you’ll have to first enable Sitecore Package Assistant in the Sitecore Gutter.

Now, as you work on the Sitecore items, which ever items you have added/updated, you’ll start seeing an  icon. On hover, you’ll see a tool-tip: This item is being tracked by SPA. Click to untrack. You can click on the gutter icon and that item will be added as untrack item. You’ll see an  icon.

In case you don’t see the icon in the Sitecore Gutter. Open Sitecore PowerShell ISE, go to Settings and Rebuild Content Editor Gutter.

The details about the item track/untrack is logged at: /sitecore/system/Modules/Sitecore Package Assistant/SPA

Once you are done with your functionality in the Sitecore, you can right click on any item and create a package of tracked items using Sitecore Package Assistant. It will give you an option to Download the Package.

This will be helpful for the Devs, so that you don’t miss any item while creating a Sitecore Package.

You can also refer Saad Ansari’s blog: Sitecore Package Assistant — Where you can know more about this module in very detail and benefits of it.

There is much more that can be done. Your suggessions/feedback/ideas are worth sharing in the comments below.

Happy Sitecoring!

Sitecore Gutter using Sitecore PowerShell Extentions

Hey Sitecore folks,

Do you know that you can create Sitecore Gutter using Sitecore PowerShell Extensions?

Yes, it’s easy to create Sitecore Gutter using Sitecore PowerShell Extensions. We’ll see how you can easily create gutter and trigger an event on click of it.

Let’s take an example of multi-linqual site in the Sitecore. For example, Content Authors switch the language to Japanese then in the Sitecore gutter we’ll show an add icon for the items which are not having the Japanese version. I will write a simple PowerShell Script which will show Add icon if an item doens’t have any version in the context language.

<#
    .NAME 
        This item does not have any version in the current language
 
    .SYNOPSIS
        Renders gutter indicating an item doesn't have any version in the current language.
      
    .NOTES
        Nikki Punjabi
#>

$currentItem = $item = Get-Item . -Language $SitecoreContextItem.Language.Name -ErrorAction SilentlyContinue

if($currentItem -eq $null) {
    
    $gutter = New-Object Sitecore.Shell.Applications.ContentEditor.Gutters.GutterIconDescriptor
    
    $gutter.Icon = "applicationsv2/32x32/add.png"
    $gutter.Tooltip = "Item doesn't have any version in " + $SitecoreContextItem.Language.Name + ". Click to create item version."   
 
    $gutter
}

Save this script as: /sitecore/system/Modules/PowerShell/Script Library/Sitecore Item Version/Sitecore Item Version/Content Editor/Gutters/Sitecore Item Version

Now rebuild Sitecore Gutter library using Sitecore PowerShell ISE.

Enable the Sitecore Item Version in Sitecore Gutter.

Change the language and you’ll see the add icon if item doesn’t have any version in the language you have selected.

Now let’s suppose you want to provide the flexibility to create the version on click of the gutter icon, we’ll write the Sitecore command, which will execute on click of the gutter icon and create an item version.

First let’s update the script for allowing the click on an icon.

Add the following line after $gutter.Tooltip

#Sitecore Gutter Click Event
    $gutter.Click = [String]::Format("item:createnewitemversion(id={0})", $SitecoreContextItem.ID)

Create Command Class with the following code:

public class Command : Sitecore.Shell.Framework.Commands.Command
    {
        public override void Execute(CommandContext context)
        {
            if (context.Items != null && context.Items.Length > 0)
            {
                Item contextItem = context.Items[0];
                if (contextItem != null)
                {
                    contextItem.Versions.AddVersion();
                    Context.ClientPage.SendMessage(this, string.Format("item:load(id={0})", (object)contextItem.ID));
                }
            }
        }
    }

When user click on the gutter icon we have to execute above piece of code which will create item version and open the item in the content editor. Wait, this won’t work directly, we have to add the command in the config file.

I’ve created a separate Class Library Project for this demo. You can refer GitHub:  https://github.com/nikkipunjabi/Sitecore-Item-Versioning

Create a config file and add the following code:

<?xml version="1.0"?>

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
  <sitecore>
    <commands>
      <command name="item:createnewitemversion" type="Sitecore.SharedSource.CreateItemCommand.Command,Sitecore.SharedSource.CreateItemCommand" />
    </commands>
  </sitecore>
</configuration>
Note: Do update the type appropriately as per the solution

Deploy the config and dll file in the webroot sitecore site.

Click on the icon and you’ll see an item version is created and it will get open in the content editor.

Happy Sitecoring!