Sitecore 9.3 installation using Sitecore Install Assistant (SIA)

In November 2019, Sitecore released a new version 9.3.0, known as Sitecore Experience Platform (XP). This version majorly focuses on the feature upgrades. One such feature upgrade is SIA, also known as Sitecore Install Assistant. In the earlier versions, the developers, new to the Sitecore platform often faced difficulty during the Sitecore environment setup and installation in their local environment. But now, with the release of Sitecore v9.3, it has become easy to install and setup the Sitecore environment with the help of SIA. When we download the Sitecore 9.3, it comes equipped with SIA – a GUI, which asks the user to enter various parameters like name of the website, SQL Admin Credentials, SOLR configuration information, etc. After taking all this information, SIA starts the processing and sets up the Sitecore environment on the user’s machine. SIA guides the user throughout the installation process, starting from the reviewal of system requirements to the installation of pre-requisites. During the installation of Sitecore v9.3, we get an option where it asks us for the confirmation to install both the SOLR and the SXA module. Having this feature, the user does not need to worry about their installation afterward, as it used to be in previous versions. So, if you are planning to install Sitecore 9.3, here’s the complete step by step guidelines for its installation and setup with SIA: 1. Downloading the Sitecore v9.3 installation files: The Sitecore installation package can be downloaded from the Sitecore official developer site, using the link below (different packages are available on this link; the first two are having SIA with the respective package): https://dev.sitecore.net/Downloads/Sitecore_Experience_Platform/93/Sitecore_Experience_Platform_93_Initial_Release.aspx To set up a development environment, we use XP single package, if there’s no such need of using the XM Scaled up package. Now, download the required package (referencing graphical setup package for XP Single for this post) and unzip the package at the desired path. It will show folder content, as depicted below, with all 23 files. 2. Check for pre-requisites The Sitecore package contains an executable setup file for SIA. Run that in administrative mode and click Start. It will check for the .Net framework first. We can directly use SIA if .Net framework 4.7.2 is already installed. If it is not installed prior, then this has to be installed; it can be downloaded from here. A system restart will be needed after this installation and proceeding further. Other pre-requisites like Sitecore Install Framework (SIF) and Windows server requisites are installed automatically by SIA in the next step. We can also skip this installation if we have installed them already. 3. Configuration setup Open the setup .exe config file in notepad or any other editor. This configuration file contains SOLR, SQL, and site information. – SQL Server name – SQL Server admin credentials – Solr Windows Service name – Solr Service Port number – Solr server URL – Solr root path – Site Prefix, Suffix We can update the configuration file, or else we can specify these settings at the time of installation as well. If we have SOLR installed already or multiple versions of SOLR instances running on our system, then we can change the port number and provide other port in the configuration file at line number 14. The SQL Server settings can be specified in the configuration file. We can also change site prefix and their suffixes if we want. 4. Running installation: Continuing with the installation after pre-requisites check and installation of .Net framework 4.7.2 and SIF with Windows server requisites, now the next screen asks to provide SOLR configuration details. 4.1 SOLR installation SOLR port will be taken from the configuration file set up in the earlier steps. Other details like windows service name and installation path need to be mentioned here. – Windows service and path prefix is the name of windows service running for SOLR version 8.1.1. – Install path is the complete path for the SOLR version 8.1.1 installation. We can install SOLR from here, or if already installed, then this step can be skipped just by filling the required details. After the successful installation of SOLR, the setup shows a success message, and we can check the SOLR implementation by browsing the URL in the browser. http://localhost:8984/solr 4.2 Sitecore settings In the next step, setup asks for below Sitecore settings Sitecore site prefix Admin password to access Sitecore CMS License file, a path for the Sitecore license file to be used for this setup 4.3 SQL Server settings: The next step asks for SQL Server settings like MS SQL Server name, admin username, and password. If we are doing the installation using local SQL, then the predefined settings with the sa account will work; we just need to provide the password. Else if we are using any other SQL Server, then we need to provide the correct server name and admin credentials for the same. 4.4 SOLR configuration If the setup installs SOLR, then we need to check these configuration values, no need to change anything. In the case of a manual SOLR setup, we need to make necessary changes in the configuration and click on next. 4.5 Installing SXA The next step asks to check the Sitecore Experience Accelerator (SXA) which is an optional module. We can decide whether to install SXA with this installation or not. The next steps show the summary of the settings and configuration provided by us till now, before the actual installation starts. If we find anything wrong, then we can go back and correct. When we proceed with the installation, it also validates the details and finds out that all requirements are in place for the installation to proceed. Click Next to start the installation process We can check the installation status by checking the logs, clicking on the down arrow. If it shows “Everything is running smoothly,” it means we are good to go. After some time, the installation gets completed, and we can see the success message as below.
Scheduled tasks in Sitecore – Creating and scheduling

Sometimes it is necessary to automate some common tasks to decrease manual efforts. Let’s say we want to trigger some emails in an interval, based on some conditions. Or we want to schedule the publishing of an item. Sitecore provides a way to schedule routine tasks called scheduled tasks. It is a simple way to execute code logic within a defined interval. Scheduling allows any predefined actions to automatically get executed whenever a certain set of conditions is met or found to be true. For e.g., We can schedule a task to send an email to a specified user whenever a certain event occurs within a system. We can configure scheduled tasks in the Sitecore under the location /Sitecore/System/Tasks Task scheduling involves two elements, or we can say there are two types of Sitecore items in the Sitecore content tree, and those are: 1:Commands 2:Schedules Creating and scheduling tasks involves a three-step process: 1: Writing the code to be executed 2: Creating a command 3: Creating a scheduler To create a command, we will have to write a code that will be executed. So, one must create a .net class that contains the logic written within a method named as a command from the scheduler. The method must accept these three arguments: A: An array of items of type Sitecore.Data.Items.Item B: Sitecore task CommandItem of type Sitecore.Tasks.CommandItem C: Sitecore task ScheduleItem of type Sitecore.Tasks.ScheduleItem For e.g., We have created a class by the name SendEmail, and a method Execute inside the class. The following method will be called when the scheduler will run within a specified interval, and the code written inside this method will be executed every time. Now to call this method from a scheduler, we will create a command under /sitecore/system/Tasks/Commands/ Create a new command named SendEmail using the template from the path /sitecore/templates/System/Tasks/Command Provide information in the content section for the newly created command, as shown below: In the Type field: Enter the assembly qualified type In the Method field: Enter the name of the method to be called from class Type: Sitecore.Common.Website.Services.SendEmail, Sitecore.Common.Website Method: Execute Now we need to create a scheduler for this task to run the command at a specific interval, under the path /sitecore/system/Tasks/Schedulers/ Create a new scheduler named SendEmailSchedule using the template from the path /sitecore/templates/System/Tasks/Scheduler Provide information in the content section for the newly created scheduler. 1: In the command field: Select/Specify the command path (Command created in the earlier step). 2: In the scheduler field: Specify the time ie., how often the job needs to run. 3: Items field: If we want to populate Sitecore items array in our class method, then it can be defined here. 4: Last run field: It will be updated by Sitecore automatically whenever the task gets executed. 5: Async field: We can mark this filed to run the command asynchronously. (Long running or never-ending tasks will run simultaneously in the case of async execution which may slow down Sitecore) Auto remove field: We can mark this field to automatically remove the schedule definition item whenever the task gets expired. The configuration setting for the field named ‘schedule’ uses a pipe separated string as below, which determines when the task should run: {start timestamp} | {end timestamp} | {days to run bit pattern} |{interval} Start timestamp and end timestamp: It determines the start date and end date of the scheduled task. The date format is YYYYMMDD. Example: 20190903 i.e. September 3rd, 2019. Days to run: It uses a 7-bit pattern which determines, the days when a task must run: 1 = Sunday 2 = Monday 4 = Tuesday 8 = Wednesday 16 = Thursday 32 = Friday 64 = Saturday Days to run is the sum of the day number when the task must run E.g., To run the task on Saturday and Sunday, add the values, 1+64 = 65. To run the task every day the number will be 127 i.e. sum of all the days (Sunday + Monday + Tuesday + Wednesday + Thursday + Friday + Saturday) = (1+2+4+8+16+32+64) = 127 Interval: It determines the time lag between each run. 00:05:00 means that the task will run after every five-minute interval. The minimum interval for the task to be executed is in HH.MM.SS format. The task is now set up to run at a specified interval. Additional information: Sitecore’s built-in task scheduler works well when we need to execute a task occasionally. But if is needed to run an everyday task like publishing content once a day and at a specific time, then it is not that simple. We can schedule a task to run every 24 hours, but we cannot make sure that it will get executed at the same time every day because of the interval-based nature of the scheduled execution. Task schedules are not based on absolute time but are based on interval execution. Hence scheduling tasks to execute at a defined time – hour or minute of the day is impossible. Sitecore periodically performs a check for any tasks that are due to run. This checking interval is defined in Sitecore configuration file, named as Sitecore.config as shown below: 00:05:00 master /sitecore/system/Tasks/Schedules true Frequency value is set default to 5 minutes, it determines when the global Sitecore task runner should run at all. The agent determines when the tasks configured in the master database at the root /sitecore/system/Tasks/Schedules should run. The agent will run with 5-minute intervals. If another task is running, it could block the task runner, delaying the agent from running. Task Execution requires an active AppPool, so if Sitecore isn’t running, scheduled tasks won’t execute. Need more guidance on Sitecore? Get in touch with our experienced consultants who have helped businesses around the globe in implementing and migrating to Sitecore. Write to us to discuss how we can help you and your team become more efficient. In case of query, add your comments below. Related services & solutions Multichannel and web experience …
Sitecore Helix and Habitat – creating a new module/project

Helix is a set of overall design principles and conventions for Sitecore development. Helix gives developers some architectural guidelines that have emerged out of experience from past Sitecore implementations The core focus of Helix is the separation of functionality into modules – a conceptual grouping of all assets related to a single business requirement and their organization into layers. This organization is beneficial because it reduces dependency between modules, minimizes side effects and additional efforts in later iterations. Helix defines some rules on how to organize the filesystem and items in the content tree. When we follow these rules, we can be sure that other developers can easily navigate the solution we built. Habitat is nothing but a way on how to implement Sitecore solution based on Helix design principles. Habitat is a real Sitecore project, built using the overall design principles and conventions provided by Helix. Habitat solution for Sitecore v9 is available on Github, and Habitat demo site is also available online for reference. Sitecore Habitat solution can be set up by following the steps which are explained in many articles and videos available online. This article describes the steps to add a new module/project in Sitecore while following Helix principles and using Habitat solution. Creating a new module/project Here we are taking an example of creating a new project by the name Ports in the Sitecore Habitat solution project section. Any module in Feature and Foundation can be created in the same way: 1. Create a folder structure: a. Open windows file explorer and navigate to the path for existing Sitecore solution C:VSTSAdvaiyaSitecoreCodeAdvaiya b. Inside the above path, create the following folder structure srcProjectPorts and srcProjectPortsserialization 2. Create a new project in Visual Studio: Open Visual Studio 2017 in administrative mode a. Open the Sitecore Habitat solution from the location C:VSTSAdvaiyaSitecoreCodeAdvaiya b. Create a solution folder by the name “ports” inside “project” section c. Create a project in the newly created “ports” folder: i. Right click “ports”, add à new project ii. Use the template “ASP.NET web application” iii. Select the project location inside the file system as below C:VSTSAdvaiyaSitecoreCodeAdvaiyasrcProjectPorts iv. Name the project as “code” to maintain the correct folder structure. We will rename it to project in the next steps. v. Click next, now select “Empty” project template and check the “MVC” checkbox vi. Click “OK” 3. Setting properties to the new project: a. Rename the project to Sitecore.Ports.Website b. Go to the project properties and set the assembly name and namespace to Sitecore.Ports.Website c. Update the project framework to “.NET Framework 4.6.2” d. Delete the folders from Project App_Data, App_Start, and Global.asax e. Go to properties “web.config” file and “/views/web.config” files, and set “Build Action” property, to “None”. By setting this property you will not publish these files with the project. 4. Add configuration files: a. Create the following folder structure in the Visual Studio under Sitecore.Ports.Website as below: /App_Config/Include/Project and /App_ConfigEnvironment/Project 5. Create a publish profile: a) Copy the”/Properties/PublishProfiles” folder from the other project. b) Paste it at the same place in the new project Sitecore.Ports.Website project. 6. Copy required assemblies from another project: a) Unload the project, edit the project file. b) Unload any other project, edit the project file. c) Compare both project files and add assemblies in the new project from another project. d) Comment target location at the end of the project file, comparing with another project. e) Reload the projects. f) Re-Build the new project, and it will add all the required assembly references now. 7. Create required folders in CMS a) Go to Sitecore CMS, enter login details and open content editor b) Create required project folder inside: i. Templates ii. Media iii. Content iv. Layout v. Rendering vi. Placeholder settings vii. Models viii. Forms 8. Check configurations and sync: a) Open Unicorn.aspx page b) Check if all configurations are done for the newly created project/module c) If not, then check for errors and resolve them one by one d) Re-serialize newly created project/module e) Sync project/module The newly created project or module is ready. If you need to create a new project for a website in multisite solution, then IIS binding and host file entry for the new website has to be done. If you need any assistance for Sitecore implementation or in the creation of a project/module our team of experts can help you.
Key features of Sitecore Experience Platform 9.1

Sitecore Experience Platform 9.1 has a lot of exciting capabilities, refinements and enhancements to the existing functionalities. It has got many innovations and values that will help customers get to the market faster. In addition to key platforms and infrastructure enhancements, Sitecore 9.1 focuses on five key areas: Sitecore Identity Sitecore Host Headless – Sitecore JavaScript Services (JSS) Sitecore Cortex Sitecore Accelerator Framework (SxA) Sitecore Identity Federated authentication service is the most exciting feature in Sitecore 9.1 version. There is a new login screen, enabling Single Sign-On (SSO) with Sitecore Experience Manager, Sitecore Commerce, and Horizon. This is the new UI released along with this version. In all the earlier versions of Sitecore, authentication of a user has always been done using form authentication in ASP.NET Membership with a simple implementation. With Sitecore 9.1, a new module has been launched which contains active directory integration. Federated authentication is widely used across the industry, and Sitecore 9.1 has finally adopted this feature which provides user authentication and authorization through a centralized federation service. This feature runs as a separate application and provides single login access. This is an in-built module which comes with Sitecore 9.1 and reduces the efforts of developers in integrating or installing different third-party modules to support different login systems. Sitecore Host The Sitecore host which is based on .Net care framework is the base for services, and it takes care of a number of concerns. Sitecore host handles those aspects of services or apps which are not directly linked like application logging, configuration management, Database access, etc. The advantages of running a service built on Sitecore Host are: The experience is consistent on all Sitecore host applications. The experience of installation is constant. Lean common runtime for Sitecore.Net core Services/Apps It is possible to configure applications on the command line, without the need for UI. It is possible to extend features using the host plugin. The behavior of the host is the same on cloud and on-premise. Headless – Sitecore JavaScript Services In Sitecore, coordination between the front end and backend developers has always been difficult. But, Sitecore 9.1 supports JavaScript Services (JSS) which provides native developer experience. Here the front-end developers can consume Sitecore content with the most common JSS frameworks like React, Angular, and Vue. In addition to JavaScript services integration, JSS provides developers access to Sitecore backend services like layouts and personalization features including xDB/xConnect capabilities. Thus, the front-end developers can begin creating components separately using JSS, and this increases the possibilities of creating single page applications, native mobile applications experiences without sacrificing on any feature of the Sitecore experience platform. Sitecore Cortex Sitecore Cortex is a machine learning program for Sitecore. This feature was already present in the earlier versions, but the new Sitecore 9.1 version brings the next level of machine learning innovations with customizable and extensible data processing engine to process data and train models accordingly. Sitecore Cortex is a combination of advanced machine learning algorithms and processing engine enabling rapid implementation of ML/AI based technology. It provides personalization recommendations and offers automatic content tagging capabilities for any product or customer. This feature helps in improving SEO results; the company can get better ROI and reduce guesswork from testing and optimization. It enables advanced search and highly-refined personalization with proper training and extension Cortex also provides plugged architecture which supports other ML which means other ML engines can also be utilized. Sitecore Accelerator Framework (SxA) Web Content Accessibility Guidelines (WCAG) are a set of web standards that enable web and related content to be accessible to users of all backgrounds. Sitecore 9.1 accelerator framework supports industry standard WCAG 2.0 accessibility guidelines. This framework will allow customers to easily build solutions using experience accelerator which complies with accessibility guidelines, thus enhancing the reach of experience accelerator to regulated industries such as public sector and healthcare. There are many other updates introduced in Sitecore 9.1 like: Enhancements in experience analytics Enhancements in email experience manager – New content for e-commerce and marketing automation Project Horizon new UI XM-only platform deployments for simpler CMS needs Support for Solr 7.2.1 All these changes in Sitecore 9.1 helps in better implementation of Sitecore solution by developers and expands the capabilities of the platform for businesses.
Sitecore 9 installation on a local development environment

From the time Sitecore 9 was released, there has been a lot of talk about the method of installation. Installing Sitecore 9 is difficult when compared to installing the previous versions, and in this version, you will be using a lot more Powershell. When I was trying to install Sitecore 9.0 in my system, I had to go through multiple website and videos to learn the method. To simplify this process, I have mentioned the steps to be followed for installation of Sitecore 9.0 on a local development environment. Sitecore Experience Marketing Demystified a. Windows 8.1, 10, Server 2012 R2 b. .NET Framework 4.6.2 c. SQL Server 2016 or greater d. IIS 8.5 or 10 e. Java Runtime Environment (JRE) f. Power Shell 5.1+ g. Web Platform Installer 5.0 h. Web deploy 3.6 i. Solr 6.6.2 j. NSSM Steps 1 1. Gather Files: a. Sitecore License file b. On-Prem XP0 Instance package: Sitecore 9.0.2 rev. 180604(download from here) Step 2 • Create install folder c:/Siteocore/install • Move license file to install folder • Extract ZIP file (Sitecore 9.0.2 rev. 180604) and move below file to install folder 1: Sitecore 9.0.2 rev. 180604 (OnPrem)_single.scwdp.zip 2: Sitecore 9.0.2 rev. 180604 (OnPrem)_xp0xconnect.scwdp.zip 3: Extract XP0 Configuration files 9.0.2 rev. 180604.zip file and move all its json file to install folder • Extract Solr 6.6.2.zip file and move to C:/Sitecore folder • Open PowerShell as administrator and move to C:Sitecoresolr-6.6.2bin directory • Run powershell command: o .Solr start -p 8983 • Open browser with URL http://localhost:8983/Solr and check solr is running properly Step 4 • Set up solr as service o Download from http://nssm.cc o Install to C:/Sitecore folder o Open Command Prompt as admin and navigate to C:Sitecorenssmwin64 o Run PS command: nssm install solr6 Under Application Tab fill values: • Path: C:Sitecoresolr-6.6.2binSolr.cmd • C:Sitecoresolr-6.6.2bin • Argument: start -f -p 8983 Under Details Tab fill values • Name: Solr6 • Description: Start/Stop Solr Service Click Install Service button o Open Service Manager to check Solr6 service is created and then start the service Step 5: Configure SSL for solr: • Download solrssl.ps1 from here • Move solrssl.ps1 file to install folder C:/Sitecore/Install • Edit the solrssl1.ps1 file o Open the file in editor o Navigate to $keytool = (Get-Command ‘keytool.exe’).Source o Set the location of keytool.exe to $keytool = (Get-Command ‘C:Program FilesJavajre1.8.0_191binkeytool.exe’).Source • Open the PowerShelland navigate to C:/Sitecore/Install and run the command .solrssl.ps1 -KeystoreFile C:Sitecoresolr-6.6.2serveretcsolr-ssl.keystore.jks o Open C:Sitecoresolr-6.6.2binsolr.in.cmd in editor and Search for this line and remove REM REM set SOLR_SSL_KEY_STORE=etc/solr-ssl.keystore.jks REM set SOLR_SSL_KEY_STORE_PASSWORD=secret REM set SOLR_SSL_KEY_STORE_TYPE=JKS REM set SOLR_SSL_TRUST_STORE=etc/solr-ssl.keystore.jks o Restart solr service o Now run solr as https https://localhost:8983/solr Step 6 Setup SQL Server User • Create a user with new User and provide Sysadmin server role • Execute below code sp_configure ‘contained database authentication’, 1; GO RECONFIGURE; GO Step 7 Install the SIF Module • Open the Powershell as administrator and run below command Register-PSRepository -Name SitecoreRepo -SourceLocation https://sitecore.myget.org/F/sc-powershell/api/v2 Install-Module SitecoreInstallFramework -RequiredVersion 1.1.0 Install-Module SitecoreFundamentals -RequiredVersion 1.1.0 Import-Module SitecoreFundamentals Import-Module SitecoreInstallFramework Step 8 Run Installation Script • Update the parameter in all the script and then run: o $prefix: name of Sitecore instance o $SqlServer: Sql server name o $SqlAdminUser, $SqlAdminPassword: User created in Step 6 Script 1: #define parameters $prefix = “xp1” $PSScriptRoot = “C:Sitecoreinstall” $XConnectCollectionService = “$prefix.xconnect” $sitecoreSiteName = “$prefix.local” $SolrUrl = “https://localhost:8983/solr” $SolrRoot = “C:Sitecoresolr-6.6.2” $SolrService = “solr6” $SqlServer = “DESKTOP-K34H1RL” $SqlAdminUser = “sc9″ $SqlAdminPassword=”pass@word1” #install client certificate for xconnect $certParams = @{ Path = “$PSScriptRootxconnect-createcert.json” CertificateName = “$prefix.xconnect_client” } Install-SitecoreConfiguration @certParams -Verbose #install solr cores for xdb $solrParams = @{ Path = “$PSScriptRootxconnect-solr.json” SolrUrl = $SolrUrl SolrRoot = $SolrRoot SolrService = $SolrService CorePrefix = $prefix } Install-SitecoreConfiguration @solrParams #install solr cores for sitecore $solrParams = @{ Path = “$PSScriptRootsitecore-solr.json” SolrUrl = $SolrUrl SolrRoot = $SolrRoot SolrService = $SolrService CorePrefix = $prefix } Install-SitecoreConfiguration @solrParams Script 2: #define parameters $prefix = “xp1” $PSScriptRoot = “C:Sitecoreinstall” $XConnectCollectionService = “$prefix.xconnect” $sitecoreSiteName = “$prefix.local” $SolrUrl = “https://localhost:8983/solr” $SolrRoot = “C: Sitecoresolr-6.6.2” $SolrService = “solr6” $SqlServer = “DESKTOP-K34H1RL” $SqlAdminUser = “sc9″ $SqlAdminPassword=”pass@word1” #install client certificate for xconnect $certParams = @{ Path = “$PSScriptRootxconnect-createcert.json” CertificateName = “$prefix.xconnect_client” } Install-SitecoreConfiguration @certParams -Verbose #deploy xconnect instance $xconnectParams = @{ Path = “$PSScriptRootxconnect-xp0.json” Package = “$PSScriptRootSitecore 9.0.2 rev. 180604 (OnPrem)_xp0xconnect.scwdp.zip” LicenseFile = “$PSScriptRootlicense.xml” Sitename = $XConnectCollectionService XConnectCert = $certParams.CertificateName SqlDbPrefix = $prefix SqlServer = $SqlServer SqlAdminUser = $SqlAdminUser SqlAdminPassword = $SqlAdminPassword SolrCorePrefix = $prefix SolrURL = $SolrUrl } Install-SitecoreConfiguration @xconnectParams Script 3: #define parameters $prefix = “xp1” $PSScriptRoot = “C:Sitecoreinstall” $XConnectCollectionService = “$prefix.xconnect” $sitecoreSiteName = “$prefix.local” $SolrUrl = “https://localhost:8983/solr” $SolrRoot = “C: Sitecoresolr-6.6.2” $SolrService = “solr6” $SqlServer = “DESKTOP-K34H1RL” $SqlAdminUser = “sc9″ $SqlAdminPassword=”pass@word1” #install client certificate for xconnect $certParams = @{ Path = “$PSScriptRootxconnect-createcert.json” CertificateName = “$prefix.xconnect_client” } Install-SitecoreConfiguration @certParams -Verbose #install sitecore instance $xconnectHostName = “$prefix.xconnect” $sitecoreParams = @{ Path = “$PSScriptRootsitecore-XP0.json” Package = “$PSScriptRoot Sitecore 9.0.2 rev. 180604 (OnPrem)_single.scwdp.zip” LicenseFile = “$PSScriptRootlicense.xml” SqlDbPrefix = $prefix SqlServer = $SqlServer SqlAdminUser = $SqlAdminUser SqlAdminPassword = $SqlAdminPassword SolrCorePrefix = $prefix SolrUrl = $SolrUrl XConnectCert = $certParams.CertificateName Sitename = $sitecoreSiteName XConnectCollectionService = “https://$XConnectCollectionService” } Install-SitecoreConfiguration @sitecoreParams After Successfully running below scripts, you can access Sitecore site using http://xp1.local URL This method can be followed for installation of Sitecore on a local development environment. You can also view Sitecore Multisite Architecture – Single Installation. In case of query, add your comments below.
5 customer experiences that can be enhanced with Chatbots

What was the last time you had a chat with a customer service agent where you might be complaining about a product you had received? There is a possibility that the agent you were speaking to was not a person but a talking bot. Chatbots have begun to revamp the customer service industry. As per Gartner predictions, by the year 2020 more than 85% of customer support will be handled by machines. Chatbots save money and effort by automating customer support. Lately, the evolution of Artificial Intelligence is at its peak, and Chatbots are a part of this huge AI wave. Today, messaging apps like Facebook Messenger, WhatsApp, Slack, etc., are used by almost everyone. With the widespread of messengers, chatbots which can converse like human beings are becoming increasingly popular. Here are some features of bots which make them hard to ignore. High response rate: A lot of messages received on a company’s website and social media channels go unanswered. But, chatbots ensure 100% response rate. Good response rates can help a company win customer trust. Better customer service support: Some people would want to ask about the status of their order after their office hours. Chatbots are available 24×7 to answer the queries of users. This eliminates the waiting time and enhances customer service of a company. Understand customer behavior: Chatbots use data and trends and adjust the responses accordingly. This can help a company get insights into its consumer behavior. The company can provide discounts on the products based on market demand. Some chatbots can assist users in finding the right products or services. Processing multiple requests: Chatbots can handle multiple queries at a time with precision. A live agent can only handle 2-3 communication at a time, while chatbots have the capacity to handle multiple queries or requests. With chatbots, volume is never an issue. Increased engagement opportunities: When we open a website, we often see a friendly greeting at the bottom corner. It is becoming important for every business to have this tool to stay in the competition. Chatbots are a cost-effective and easily adaptable tool to engage with the users. A highly engaged customer is likely to reach the bottom of sales funnel and chatbot has the potential to engage with the audience proactively. Thus, bots have gained prominence in the customer service segment. They limit the possibility of human errors and are available to address user issues 24X7. This technology might still take time in creating an ultimate seamless experience for customers, but this is the future of customer service. Want information about our Customer engagement solutions? Click here
Sitecore Multisite Architecture – Single Installation

Sitecore provides Multisite Architecture in which single installation of Sitecore can create multiple websites and publish them in the same Sitecore instance. This way it becomes accessible to hosts all an organizations website in a Single Sitecore Instance. In this blog, I am describing how we can quickly setup multisite in Sitecore with the single Sitecore instance. The benefits of using single Sitecore installation with multisite architecture includes: 1. Single set of user access credentials for access to all sites: Single Sitecore instance lets you use the same set of Sitecore managed users to access all your sites. 2. Easier to share content between sites: With single Sitecore instance, all content is directly accessible and addressable through Sitecore. It provides ability to share common data like templates, master pages, content items as data sources in renderings across sites. If Sitecore instances are separated, then content on the other instance is treated more as content on any external sites, and in that case, we would need to use RSS feeds, Web API or any Data Providers to provide content sharing between websites. 3. Easier tracking of visitors: All websites exists in a Sitecore instance share a single xDB database, so it becomes easy to capture web analytics information and get consolidated view across the different websites. Some key configuration points of multisite setup in Sitecore: Multiple websites are hosted in a single Sitecore installation, each site will be having its on properties and sharing common data like templates, master pages, items etc. The properties of each site are stored in the Sitecore configuration files. Each site in the Sitecore multisite structure runs with its own context created inside SiteDefinition.config file placed under “~WebsiteApp_ConfigInclude” folder. The context is defined for each site by adding a in the congif file having the site definition. Sitecore determines the site context based on the URL, hostname and the physical folder name specified in the site definition. For Ex. If two different sites are created in the content tree as below: Website 1:hostName=” website1.hostname.com”virtualFolder=”/”physicalFolder=”/”rootPath=”/sitecore/content/Website1″startItem=”/home”database=”web”domain=”extranet”allowDebug=”true”cacheHtml=”true” htmlCacheSize=”50MB” enablePreview=”true” enableWebEdit=”true” enableDebugger=”true” disableClientData=”false”/> Website 2: hostName=” website2.hostname.com” virtualFolder=”/” physicalFolder=”/” rootPath=”/sitecore/content/Website2″ startItem=”/home” database=”web” domain=”extranet” allowDebug=”true” cacheHtml=”true” htmlCacheSize=”50MB” enablePreview=”true” enableWebEdit=”true” enableDebugger=”true” disableClientData=”false”/> Binding with each hostname is then needs to be done in IIS as below: Below host entries are required to be added in the hosts file placed under “C:WindowsSystem32Driversetc” 1. 127.0.0.1 website1.hostname.com 2. 127.0.0.1 website1.hostname.com Now you can browse the websites using website1.hostname.com & website2.hostname.com. You can create more websites in the content tree and can add the site definition and host entries for them in IIS and host the file using the above steps.
Sitecore Experience Marketing Demystified

Sitecore is an enterprise-class content management system (CMS), and its Experience Marketing System (formerly known as DMS) module can advance your digital marketing practices and enhance conversions from your website. This Digital Marketing System helps bring quality leads through email, mobile, web and social channels right at your fingertips and makes information of campaign and site performance easy. Sitecore Experience Marketing System is a robust marketing solution that allows a one-stop shop for marketing data and insights for an enterprise Sitecore Experience Analytics reports help you to categorize patterns and trends in customer interaction data, collected from websites and other data sources in the following ways: Dashboard – provides an outline of key analytics and performance indicators Acquisition – identifies what is driving traffic to your website, e.g., which campaign worked well and which didn’t, channel sources, target keywords, or referring site Audience – gives you knowledge of who your visitors are, from where they landed on your website, and showcase the efficiency of your buyer persona strategies Behavior – helps you evaluate your visitors’ actions. What pages have they visited and what have they downloaded on that page? Conversion – gives you knowledge of what is most effective in driving customer’s attention for your product or service Sitecore Email Experience Manager, smoothly integrates with your web platform, helps you execute targeted campaign, track performance metrics, perform marketing automation and personalize the content. Some of the exciting features are: It lets you customize your customer information and send email dynamically across customer segments It also provides information about the entire customer journey, starting with email open rate and click-through to website actions and engagement, goals and conversions Allows you to define an end to end campaign workflows by identifying the right actions and scheduling it to trigger at the right time Allows you to test every single component of a campaign to establish and improve customer engagement Another element which makes it a hot cake is its seamless social integration by making social conversations part of the connected customer experience. There are a variety of powerful solutions to help you make the most out of your corporate social media, starting from allowing social communities on your website to connecting social data to drive most relevant and exceptional customer experiences across channels. Sitecore Experience Marketing System has the power to take your web presence to the next level. Its advanced analytics can be very helpful to identify the visitors and thus converting them into leads. It can deliver everything from basic analytics to sophisticated email campaign management with the highest level of customizations. In this way, marketers can achieve content, analytics, testing, email, personalization, and automation in the same interface and can track all the data at a single location, thus avoiding the need for various platforms and unnecessary administrative work for your marketing team.
Add placeholder attribute in Sitecore WebForms module

When I started creating forms in Sitecore module Webforms for Marketers (WFFM), the first thing that popped up was how do I add placeholder attribute in the textbox. I am sure many of you might get stuck on this issue, so here I explain how can one add the placeholder attribute in Sitecore Web Forms for Marketers. To begin, you need to create a class that inherits from SingleLineText with an additional property “Placeholder”. public class SingleLineText : Sitecore.Form.Web.UI.Controls.SingleLineText { [VisualCategory(“Appearance”)] [VisualFieldType(typeof(TextAreaField)), Localize] [VisualProperty(“PlaceholderText:”, 100)] public string PlaceholderText { get; set; } protected override void DoRender(HtmlTextWriter writer) { this.textbox.Attributes.Add(“placeholder”, this.PlaceholderText); base.DoRender(writer); } } Further you can create a new custom field type item under /sitecore/System/Modules/Settings/Field Types/Custom. Set Assembly and the Class. Oh yes! You also need to add Count Chars and Regex Pattern validation. Finally set “Textbox with placeholder” custom field type in Form Designer and Placeholder Text. And you are done. Webforms for Marketers field type with a placeholder attribute is ready for use!