Skip to main content

Posts

Sitecore 9 Forms: Robot detection

Sitecore 9 Forms: Robot detection As you know Sitecore 9 does not provide “Update Contact details” out of box but Sitecore is providing code for that which you can find from here In my current project, I am using Sitecore 9.0.2 and using the same code which Sitecore is providing for Update Contact. Recently I faced an issue where the form is getting spammed.  After some investigation, I found IsRobot function which is a helper method of Sitecore.Analytics.Pipelines.ClassificationStrategy.ContactClassification class.  This helper methods take the contact classification as a parameter and return a Boolean value which indicates whether the contact is a robot or not. public static bool IsRobot(int classification); Below is a code of UpdateContact: namespace Sitecore.ExperienceForms.Samples.SubmitActions { /// <summary> /// Submit action for updating <see cref="PersonalInformation"/> and <see cref="EmailAddressList"/

Sitecore 9 Forms: Google reCaptcha field

Sitecore 9 Forms: Google reCaptcha field  Re-Captcha is the most important part of any form’s submission. Google reCaptcha run internet bot detector and determined whether a user is a bot or not.  Sitecore Forms does not provide Google reCaptcha field, which was available in WFFM before, so I have created my custom Google reCaptcha.   Below you can find step by step process to create Google reCaptcha field. Create patch config for reCaptcha Sitekey and SecretKey <?xml version="1.0"?> <configuration xmlns:patch="http://www.sitecore.net/xmlconfig/" xmlns:set="http://www.sitecore.net/xmlconfig/set/"> <sitecore> <settings> <setting name="ReCaptchaSiteKey" value="site-key" /> <setting name="ReCaptchaSecretKey" value="secret-key" /> </settings> </sitecore> </configuration> Create new viewmodel class RecaptchaViewMode

Having issue with Dynamic CRM Connector while syncing Dynamic CRM drop down with Sitecore facet?

Having issue with Dynamic CRM Connector while syncing Dynamic CRM drop down with Sitecore facet? As in previous post I have explained about how to Sync CRM field with Sitecore custom facet, while I was trying to sync CRM dropdown to Sitecore custom facet, I was not able  to sync that. I tried to sync “Gender” dropdown, which is by default available in connector settings, but still I was not able to sync “Gender” as well. Then I have raised a ticket with Sitecore, they have provided me Sitecore patch file which you can download from here and you can follow below instructions: Paste DLL in your bin folder. Navigate to this location "/sitecore/system/Data Exchange/XXX/Value Mapping Sets/Dynamics to xConnect Contact Mappings/Dynamics Contact to xConnect Contact Personal Info Facet/Gender"  Go to the location which you have selected in "Source Value Transformer" field which is this location "/sitecore/system/Data Exchange/XXX/Data Access/Value Readers/

NotSupportedException - Search operation not supported with xConnect collection-only configuration

NotSupportedException - Search operation not supported with xConnect collection-only configuration Are you also getting this error “ NotSupportedException - Search operation not supported with xConnect collection-only configuration ”? So, let me explain to you this issue is related to CD Sitecore instance. The issue is that Sitecore CD servers are set to only use xConnect as a collection-only endpoint. To resolve this issue, open this config “ App_Config\Sitecore\XConnect.Client.Configuration\Sitecore.XConnect.Client.config ” and add “ ContentDelivery ” role in role:require attribute just like below code. <clientconfig type="Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration,Sitecore.XConnect.Client.Configuration" singleInstance="true" role:require="ContentDelivery or Standalone or ContentManagement"> <param desc="clientModel" ref="xconnect/runtime" />

Sitecore 9 Dynamic CRM Connector: Sync CRM field with Sitecore custom facets (Part 7)

Sitecore 9 Dynamic CRM Connector: Sync CRM field with Sitecore custom facets (Part 7) In previous blog, we have discussed how to sync Sitecore custom facets to CRM. Dynamic CRM Connector comes with out of box functionality to sync CRM with Default facets, but we are going to discuss how we can sync CRM with Sitecore custom facets. Step 1: Specify how to read from the Dynamics contact Navigate to this location “/sitecore/system/Data Exchange/XXX/Data Access/Value Accessor Sets/Providers/Dynamics/Dynamics Contact” Add the following item: Template: Entity Attribute Value Accessor Item Name: GraduateYear on Dynamics Contact Set the following field values: Attribute Name: CRM Field Name Value Type: Option Set Value (If dropdown, if checkbox select Formatted Value otherwise blank for single line) Step 2: Specify how to write to the Contact facet Navigate to this location “/sitecore/system/Data Exchange/XXX/Data Access/Value Accessor Sets/Providers/xConnect” Add t

Create custom data attribute for Sitecore 9 Form Field

Create custom data attribute for Sitecore 9 Form Field Sitecore Forms provides you default form field like Text, Single-line text, Multi-line text, Email, Telephone, Checkbox except this it is very easy to create our custom Sitecore form field and custom Sitecore form field attribute. In this blog, we are going to discuss how to create custom Sitecore form field attribute in existing Single-line text. Move to the location /sitecore/templates/System/Forms/Fields/Field  and add CustomAttribute field with Single-Line Text Switch to Core db and go to this location /sitecore/client/Applications/FormsBuilder/Components/Layouts/PropertyGridForm/PageSettings/Common/Styling Create duplication item of CssClass and rename it with CustomAttribute Update FormLabel to Custom Attribute Add BindingConfiguration to customAttribute Now go to this location "/sitecore/client/Applications/FormsBuilder/Components/Layouts/PropertyGridForm/PageSettings/Settings/SingleLine

Sitecore 9 Dynamic CRM Connector: Conditionally Sync Sitecore Field (Part 6)

Sitecore 9 Dynamic CRM Connector: Conditionally Sync Sitecore Field (Part 6) Part 5:  Schedule Pipeline Batches in Sitecore 9 Dynamic CRM Connector   There can be the situation while you are syncing xDB contacts to CRM and you want to update some field on the basis of some logic. Just like the below condition where I wanted to sync to “Birthdate” when it is above 1990 otherwise, it will be blank in CRM. Apply Mapping Rules To apply mapping rules firstly create custom class “BirthdateValueMappingRule”         namespace Namespace { public class BirthdateValueMappingRule : IApplyMappingRule { public readonly int Year = 1990; public readonly string FacetName = "Personal"; public bool ShouldMappingBeApplied(object value, IMapping mapping, MappingContext context) { if (value != null && context != null) { var MappingSource = (EntityModel)context.Source; var MappingFacets = Mappin

Schedule Pipeline Batches in Sitecore 9 Dynamic CRM Connector (Part 5)

Schedule Pipeline Batches in Sitecore 9 Dynamic CRM Connector (Part 5) Part 4 :  Sitecore 9 Dynamic CRM Connector: Custom pipeline to filter contacts Scheduler is a simple way to execute some task with intervals. To schedule a Dynamic CRM Connector task, Sitecore provides you out of box functionality. There are two steps which need to follow: Step 1: Create Command         Navigate to this location “/sitecore/system/Tasks/Commands/Data Exchange” and create an item        There will be a two type of command “Run All Pipeline Batches Command” and “Run Selected Pipeline Batches Command” Create command according to your requirement Navigate to “Pipeline Batched” field for “Run Selected Pipeline Batches Command” and “Pipeline Batches Root” for “Run All Pipeline Batches Command” and select relevant pipeline Step 2: Create Schedule Navigate to this location “/sitecore/system/Tasks/Schedules” Create new “Schedule” Select “Command” which you have create