# Getting Started

Once you login to the account, on the Welcome page, provide the mandatory information, such as your name, organization name, and website URL, and then proceed by clicking **Next**.

<figure><img src="/files/2hpi3iMfUkCr15u77wDK" alt=""><figcaption></figcaption></figure>

In the '**Code Snippet**' section, simply copy and paste the provided code snippet between the tags of your webpage. Afterward, click on '**Next**' to proceed.

<figure><img src="/files/MHblDtoM9KqWZvIaU4OW" alt=""><figcaption></figcaption></figure>

In the '**Extension**' section, install the extension by clicking on 'Install Extension' button. Once the extension is installed successfully then you can see the 'Extension Installed' button. Click on '**Next**' to proceed.

<figure><img src="/files/SFOxC4znNDG4vBewza1H" alt=""><figcaption></figcaption></figure>

Click on **Finish** to complete your account setup.

<figure><img src="/files/lTcBp8jPy11vTyLXTfia" alt=""><figcaption></figcaption></figure>


# Installing CustomFit Code Snippet

To provide a personalized experience to your website visitors, your initial step is to install the [CustomFit.ai](http://customfit.ai/) code snippet on your website. This installation is a one-time setup and doesn't require modification every time you run a new experience. To successfully complete this installation, you'll need access to your website's source HTML code.

{% hint style="warning" %}
[CustomFit.ai](http://customfit.ai/) does not recommend installing the code snippet through tag managers (such as Google Tag Manager) because that will cause the flicker (visitor can see the default content being replaced by the personalized content).
{% endhint %}

### To add the code snippet

* From the dashboard sidebar, click on '**Settings**' and then click on the '**CustomFit Setup**' option.

<figure><img src="/files/V97lEfzoYrU1kAv4tvlx" alt=""><figcaption></figcaption></figure>

* Click '**Copy**' to copy the code snippet.

<figure><img src="/files/PDFyXH91qEoCu3kYPcV1" alt=""><figcaption></figcaption></figure>

* Paste the copied code snippet into the **\<head>** tag of your website to personalize and track visitors.
* In the URL field, type the web page's URL where you placed the code snippet, then click Verify to confirm the installation. You will see the success message if the installation was successful.

<figure><img src="/files/wVyeAZs2o66PktGzu62J" alt=""><figcaption></figcaption></figure>


# Installing the code snippet on Webflow

If you're using Webflow, integrating the CustomFit code snippet into your Webflow sites is a swift and user-friendly process. No coding expertise is needed, making it an effortless installation.

* Log in to your Webflow account.
* Click on the site's **Project Settings**.

<figure><img src="/files/kR5gVL4wu9xZXE3PZ6UJ" alt=""><figcaption></figcaption></figure>

* Login to your [CustomFit.ai](http://customfit.ai/) account and copy the code snippet. Paste the copied code snippet into the '**Head Code**' section of your Webflow account.

<figure><img src="/files/TWzNdczLevYzNxDBfk7s" alt=""><figcaption></figcaption></figure>

* Click on **Save Changes**.

<figure><img src="/files/6q7WV0w0OZRMK4cBvr7I" alt=""><figcaption></figcaption></figure>

* You can check if the code snippet is successfully installed on your website by entering the website URL in the verification section of the [CustomFit.ai](http://customfit.ai/) setup page and then click on the **Verify** button.


# Installing the code snippet on Wordpress

If you're using Wordpress, integrating the CustomFit code snippet into your Wordpress sites is a swift and user-friendly process. No coding expertise is needed, making it an effortless installation.

The easiest way to add a code snippet to WordPress is with a plugin. This method is more flexible and easier to manage than adding the code directly to your theme. For example, [Head & Footer Code](https://wordpress.org/plugins/insert-headers-and-footers/) is a good plugin.

Once the plugin is installed, navigate to Settings by going to tools->Head & Footer Code. On this screen, there are three boxes for the header, footer, and body sections.&#x20;

<figure><img src="/files/SRAR4DCOyAPIHnZSqtjQ" alt=""><figcaption></figcaption></figure>

Login to your [CustomFit.ai](http://customfit.ai/) account and copy the code snippet. Paste the copied code snippet in 'Scripts in Header' section and click on the 'Save Changes' button at the bottom of the screen. The code will then load to every page of your site.

You can check if the code snippet is successfully installed on your website by entering the website URL in the verification section of the [CustomFit.ai](http://customfit.ai/) setup page and then click on the **Verify** button.


# Installing the code snippet on Wix

If you're using Wix, integrating the CustomFit code snippet into your Wix sites is a swift and user-friendly process. No coding expertise is needed, making it an effortless installation.

* Login to your Wix account.
* Click on **Settings** in the Wix dashboard.

<figure><img src="/files/5Rzy15cEyUqOTM4Cerwx" alt=""><figcaption></figcaption></figure>

* Click on the **Custom Code** option.

<figure><img src="/files/28b8W4MD6A32KhAMOA1Q" alt=""><figcaption></figcaption></figure>

* Click on + Add Custom Code button.

<figure><img src="/files/OLNEgbD4lxzgCKJupEoE" alt=""><figcaption></figcaption></figure>

* Login to your [CustomFit.ai](http://customfit.ai/) account and copy the code snippet. Paste the copied code snippet in the '**Paste the code snippet here**' field.
* Enter [CustomFit.ai](http://customfit.ai/) in the 'Name' field to identify the custom code that refers to CustomFit.ai
* You may choose whether to apply the [CustomFit.ai](http://customfit.ai/) code snippet to all pages or just a few pages by selecting the respective option from the 'Add Code to Pages' field.
* Click on 'Apply' button to save the code snippet.

You can check if the code snippet is successfully installed on your website by entering the website URL in the verify section of the CustomFit.ai setup page and then click on the **Verify** button.


# Installing the code snippet on Shopify

If you're using Shopify, integrating the CustomFit code snippet into your Shopify stores is a swift and user-friendly process. No coding expertise is needed, making it an effortless installation. You can add [CustomFit.ai](http://customfit.ai/) code snippet to shopify store in two ways

1. Installing through App
2. Manual Installation

### Installing through CustomFit App

* Login to your Shopify account and click on '**Apps**' from the sidebar.

<figure><img src="/files/K29SiLAB3bwhkCYBj4hg" alt=""><figcaption></figcaption></figure>

* Search for the CustomFit app by typing Customfit in the search field, or you can find the CustomFit shopify app [here](https://apps.shopify.com/customfit?st_source=autocomplete).&#x20;

<figure><img src="/files/70c6YzA4tkZUdcKtJWBV" alt=""><figcaption></figcaption></figure>

* Click on the '**Install**' button.

<figure><img src="/files/06vBeQhKNPUcPBuvgvMu" alt=""><figcaption></figcaption></figure>

* If you choose to install the CustomFit app, you will be taken to an access screen where you can check exactly what information the app will have access to. Click on the '**Install App**' button.

<figure><img src="/files/26qlRccvciDrJk9C6pTt" alt=""><figcaption></figcaption></figure>

* After the successful installation of the app, you will be redirected to CustomFit app screen. Login to your CustomFit account and the [CustomFit.ai](http://customfit.ai/) code snippet will be automatically added onto your shopify store.&#x20;

<figure><img src="/files/grDS6IMGGRnz0zTlXV7R" alt=""><figcaption></figcaption></figure>

### Manual installation

* [Login](https://accounts.shopify.com/store-login) to your Shopify account and click on '**Online Store**' from the sidebar. Then click on '**Themes**'.

<figure><img src="/files/LIhtj7Q2Y4Lb8woL4bLW" alt=""><figcaption></figcaption></figure>

* Then click on '**Edit Code**' option from your Theme menu.

<figure><img src="/files/3mGxKFOU0xKSxtpI3Exx" alt=""><figcaption></figcaption></figure>

* Select '**theme.liquid**' file under '**Layout**' section and search for **\<head>** tag on the page.
* Login to your [CustomFit.ai](http://customfit.ai/) account and copy the code snippet. Paste the code snippet just after the \<head> tag and click on the '**Save**' button.&#x20;

<figure><img src="/files/79ifPJCk19YYmmSvVOiO" alt=""><figcaption></figcaption></figure>

When you install CustomFit code snippet on to your Shopify store, it is added on all the pages of your store except for 'Check Out' pages.

### Install code snippet on checkout pages

* Click on '**Settings**' which is present at the bottom left of your screen.

<figure><img src="/files/tDeNilhrcx1v1B0OP9wM" alt=""><figcaption></figcaption></figure>

* Click on the '**Checkout**' option.

<figure><img src="/files/wFZKPLAOsDFX73iOBdaP" alt=""><figcaption></figcaption></figure>

* Under the '**Order status page**' section you will find the '**Additional Scripts**' field. Paste the CustomFit code snippet here and click on '**Save**' button.

<figure><img src="/files/DpMkvqWwKZCdafFaJL3V" alt=""><figcaption></figcaption></figure>


# Installing the code snippet on Unbounce

If you're using Unbounce, integrating the CustomFit code snippet into your Unbounce sites is a swift and user-friendly process. No coding expertise is needed, making it an effortless installation.

* Log in to your Unbounce account.
* Click on **Settings** from the sidebar, and then click on the **Script Manager** option.

<figure><img src="/files/QEYjWfdUAT3u8bbxXuF0" alt=""><figcaption></figcaption></figure>

* Then, click on the "**Add a Script**" button.

<figure><img src="/files/ecPg3P1Z8XRvJFVbXgXE" alt=""><figcaption></figcaption></figure>

* Next, in "Add a Script" popup select the **Custom Script** option.&#x20;

<figure><img src="/files/CaM7AmQwUyKLZMGr4kSj" alt=""><figcaption></figcaption></figure>

* Give the **script name** and click on the **Add Script Details** button.

<figure><img src="/files/9PqYppi1TnigePY8dMCQ" alt=""><figcaption></figcaption></figure>

* Login to your [CustomFit.ai](http://customfit.ai/) account and copy the code snippet. Paste the copied code snippet in the '**Paste the code snippet here**' field.
* Select the "**placement"** option as **Head**.
* Select the "**included on"** option as **All**.
* You may choose whether to apply the [CustomFit.ai](http://customfit.ai/) code snippet to all pages or just a few pages by selecting the respective option from the '**Script Usage**' field.
* Finally, click on the **Save and Publish Script** button.

<figure><img src="/files/ud1cGDaDzhB7jv4Yd9Dd" alt=""><figcaption></figcaption></figure>

You can check if the code snippet is successfully installed on your website by entering the website URL in the verify section of the CustomFit.ai setup page and then click on the **Verify** button.

{% embed url="<https://www.loom.com/share/5c8af3644403421fb2321b6cae58e1fb?sid=328dda48-4db0-4442-8043-6053cd534ef0>" %}


# Installing the code snippet on Salesforce Commerce Cloud

This doc explains how to deploy the CustomFit.ai code snippet inside a Salesforce Commerce Cloud storefront so you can run A/B tests, personalization campaigns, and behavior-based targeting.

**Prerequisites**

Make sure you have:

* Admin access to **Salesforce Commerce Cloud Business Manager**
* Permission to edit ISML templates
* Your CustomFit.ai project script (available in your CustomFit dashboard)

### Step 1: Identify the Global Head Template

CustomFit’s script must load on every page of your storefront.

In most Salesforce Commerce Cloud implementations, the shared `<head>` section is controlled by a template such as:

```
header.isml
```

This template ensures your tracking script runs consistently across homepage, category, product, and checkout pages.

If your project uses a custom structure, locate the ISML file responsible for rendering the `<head>` tag globally.

### Step 2: Insert the CustomFit.ai Tracking Script

Locate the ISML file responsible for rendering the global `<head>` section of your storefront. In most Salesforce Commerce Cloud implementations, this is the `header.isml` template.

You can access it either through your local development environment or directly from Business Manager by navigating to:

**Administration → Sites → Manage Sites → \[Your Site] → Development → Templates**

Once there, open the template file that controls the shared head markup across your site pages.&#x20;

Insert the CustomFit.ai code snippet inside the `<head>` section of the template. Placing it here ensures the script loads consistently across all storefront pages.


# Account Setup

### Update Domain

One of the essential inputs required to set up the CustomFit account is domain configuration. If the domain is not provided or configured properly, then the traffic will not be consumed. Therefore, it is essential to keep your domain up to date. Follow these steps to update your domain:

* From the dashboard sidebar, click on '**Settings**' and then click on the '**CustomFit Setup**' option.
* In the '**What is the URL of the website you'd like to personalize?'** field, give your domain.
* Once the domain is provided, click on the 'U**pdate'** button.

<figure><img src="/files/tHkRZCrIAftL2ZEdYXLL" alt=""><figcaption></figcaption></figure>

### Code Snippet

To provide a personalized experience to your website visitors, your initial step is to install the [CustomFit.ai](http://customfit.ai/) code snippet on your website. This installation is a one-time setup and doesn't require modification every time you run a new experience. To successfully complete this installation, you'll need access to your website's source HTML code.

* From the dashboard sidebar click on '**Settings**' and then click on the '**CustomFit Setup**' option.
* Click '**Copy**' to copy the code snippet.

<figure><img src="/files/dWi0xmzEcRLvZrzDGUGz" alt=""><figcaption></figcaption></figure>

* Paste the copied code snippet into the **\<head>** tag of your website to personalize and track visitors.

### Verify code snippet installation

To verify if the code snippet is installed properly, follow these steps:

* From the dashboard sidebar, click on '**Settings**' and then click on the '**CustomFit Setup**' option.
* In the '**Verify Installation'** field enter the website URL or a particular webpage URL where you have installed the code snippet.&#x20;
* Once the URL has been entered then click on the '**Verify'** button.

<figure><img src="/files/dKsGOkpNk3srwztpD4qw" alt=""><figcaption></figcaption></figure>

### Install the Chrome extension

The CustomFit.ai extension will empower you to personalize your website without the need for any coding knowledge. With its user-friendly interface and intuitive tools, you can effortlessly edit various elements of a webpage to suit your requirements. Whether it's adjusting layout, colors, fonts, or other design elements, CustomFit.ai provides a seamless editing experience right within your browser.&#x20;

To install the CustomFit.ai extension in Google Chrome, follow these steps:

* From the dashboard sidebar, click on '**Settings**' and then click on the '**CustomFit Setup**' option.
* Next, click on the '**Install Extension**' button, and you will be redirected to the CustomFit.ai Chrome extension page.

<figure><img src="/files/y3vyAmsjuoBy3bMwFeim" alt=""><figcaption></figcaption></figure>

* Once you find the extension, click on the "**Add to Chrome**" button.

<figure><img src="/files/mg9gnFvLn8sdR021cMdO" alt=""><figcaption></figcaption></figure>

The button labelled "**Extension Installed**" will appear if the extension was installed successfully.

<figure><img src="/files/0bpmZ6v3c2U3lauVVwlP" alt=""><figcaption></figcaption></figure>


# Configuring Account Users

To configure an account's user information, follow these steps:

* Navigate to '**My Account**' settings.

<figure><img src="/files/dwRSiRZfHGEY4ywKUYuG" alt=""><figcaption></figcaption></figure>

* Provide the first name, last name and then click on the '**Update Profile**' button.

<figure><img src="/files/eAXXyD8MmKCUnfUQsKFN" alt=""><figcaption></figcaption></figure>

* To change the password, Click on the '[**Change password**](https://dashboard.customfit.ai/settings/changePassword)' link.
* Enter your '**Current password'** and '**New password'**. Then click on the **Change password** button.

<figure><img src="/files/jISSRbUtkh39mISTNR1q" alt=""><figcaption></figcaption></figure>


# Add Users and Assign Roles

In CustomFit, you have the flexibility to invite new team members to collaborate with you and designate their roles, whether it's as an admin, writer, or reader. This role-based customization becomes particularly valuable in situations where multiple individuals are contributing, allowing you to grant distinct permission levels to each member.

To add a new user

* Click the profile picture icon in the top-right corner, and then select the '**Account Users**' option.

<figure><img src="/files/3EFIwmZMPniellWEWhij" alt=""><figcaption></figcaption></figure>

* In the Account Users page, click on the '**Create User**' button.

<figure><img src="/files/xdehYiN2vHtnVGYrYZry" alt=""><figcaption></figcaption></figure>

* Provide the required information such as email id, First name and then select the user role. Click on '**Create**' button to create the new user successfully.

<figure><img src="/files/eZs8Iz84gbRVDeBW3Bsa" alt=""><figcaption></figcaption></figure>

**Admin** has full access to account and billing information.

**Writer** can create, update, delete and view results of experiences.

**Reader** can only view experiences and its results.


# Configuring Subdomains

You can track visitors and goals across multiple domains and subdomains in a CustomFit account. With this setup, you can effectively monitor visitor activity and goal completions across various domains and subdomains, providing valuable insights into visitor behavior.&#x20;

For instance, if you have a primary domain (e.g., example.com) and several subdomains (e.g., blog.example.com, shop.example.com), you can configure them all in your CustomFit account.&#x20;

{% hint style="warning" %}
CustomFit.ai code snippet should be installed on all the configured domains and subdomains.&#x20;
{% endhint %}

### To configure domains or subdomains

* From the dashboard sidebar, click on '**Settings**' and then click on the '**CustomFit Setup**' option.

<figure><img src="/files/g2sElu2iGvV6ipySjOI5" alt=""><figcaption></figcaption></figure>

* Click on the '**Manage Subdomains**' option.
* Click on the '**Add Subdomain**' button.

<figure><img src="/files/O2pAjgEuzwIEqMryd2aB" alt=""><figcaption></figcaption></figure>

* In the popup, give your subdomain or domain and click on the '**Add**' button.

<figure><img src="/files/CQuGGBPV90MrWiMyZLmN" alt=""><figcaption></figcaption></figure>

* Click on the delete icon to remove the subdomains or domains.
* To edit the configured subdomains or domains, click on the edit icon.

<figure><img src="/files/ZYVadT1FEs36rAbno96R" alt=""><figcaption></figcaption></figure>


# Configuring Traffic Blocking

The CustomFit dashboard provides a way to configure traffic blocking based on specific criteria, such as IP addresses, referrers, and page paths. Below are the different methods you can use for traffic blocking:

* **Blocking Traffic from Specific IP Addresses.** For example, Adding 192.168.123.34, 192.168.135.32 will block out traffic coming from the given IP addresses. If you want to block multiple addresses, then use commas to separate different IP addresses.
* **Blocking Traffic Based on Referrer.** For example, adding facebook.com will block out referral traffic from any facebook.com URL. Use commas to separate different referrer domains. This will reduce the spam or unwanted traffic originating from certain referrers.
* **Blocking Traffic Based on Specific Page Paths.** For example: adding <https://your-domain/blogs/\\>\* will block out all traffic coming from <https://your-domain/blogs> URL. Use commas to separate different page paths.&#x20;

### To configure traffic

* From the dashboard sidebar, click on '**Settings**' and then click on the '**CustomFit Setup**' option.

<figure><img src="/files/O1AVFrc7wPZQcq7el5Kx" alt=""><figcaption></figcaption></figure>

* Click on the '**Advanced Settings**' option.
* If you want to block IP addresses, then enter the IP address in **'IP Addresses to Exclude**' and click on the '**Update**' button.
* If you want to block referrers then enter the referrers in **'From these referrers**' and click on the '**Update**' button.
* If you want to block specific page paths then enter the page paths in **'From these page paths**' and click on the '**Update**' button.

<figure><img src="/files/GY4KgujXZJnQDDlndOQt" alt=""><figcaption></figcaption></figure>


# How to create an A/B test

A/B testing is a method used to compare two versions of a website to determine which one performs better in terms of achieving a specific goal, such as increasing conversions. The variations can involve changes in design, layout, content, calls-to-action, or any other element of the webpage that may impact user behavior.&#x20;

### Steps to create an A/B test

Start with a hypothesis about what changes might improve the performance of your webpage. For example, you might hypothesise that changing the color of a call-to-action button will increase click-through rates.

#### Create an A/B test

* Log in to the dashboard and navigate to the Experience page from the sidebar.
* Click on the '**Create Experience**' button.

<figure><img src="/files/2vNSjnZ8g11TfbOyHD37" alt=""><figcaption></figcaption></figure>

* After giving your A/B test a name and a description, click the "**Create Experience**" button.

<figure><img src="/files/7LaEIIt8fWuutIQpkqTK" alt=""><figcaption></figcaption></figure>

#### Add page paths

Add the page path(s) on which you want to run the A/B test. **For example**, if you want to run an A/B test on the pricing page, then enter the pricing page path.

* Click on the '**Add pages**' button.&#x20;

<figure><img src="/files/RtAs565DO68lzOKGlwuT" alt=""><figcaption></figcaption></figure>

* From the drop-down, select the required option.
  * **Simple page path match**: It checks if the given page path matches exactly.
  * **Page path contains**: It checks if the page path contains the given text.
  * **Page path regex** matches with: It checks if the page path matches the given regex.

<figure><img src="/files/38dHMADO6VN90XLC8gMm" alt=""><figcaption></figcaption></figure>

* Enter the page path and click on the '**Add**' button.

<figure><img src="/files/juo65i0GXm4hXc13i34M" alt=""><figcaption></figcaption></figure>

#### Create behaviors

You can create multiple behaviors (variations) on your website or webpage. When you create an A/B test, then by default, a default behavior will be created. This will be your default (control) website, and you will not be allowed to delete default behavior. To add the new behavior

* Click on the '**Add Behavior'** button.

<figure><img src="/files/q0tFOFgvSlVcaR4YKKVY" alt=""><figcaption></figcaption></figure>

* Then give a proper **Name** and **Description** for your behavior.
* Click on the '**Add'** button.

<figure><img src="/files/VJQAJQFUQALht5IEGjVy" alt=""><figcaption></figcaption></figure>

To edit the webpage, click on the '**open visual editor**' button present on the respective behavior.&#x20;

#### Targeting audience

You can target A/B tests to specific audience segments. This will allow you to gain deeper insights into how different variations resonate with different groups of visitors. For example, you can restrict the A/B test to visitors from the USA using mobile devices.

* Click on the '**Add Rules**' button.

<figure><img src="/files/jRMVxdmnAfazUtpy6Fx6" alt=""><figcaption></figcaption></figure>

* Choose the **audience category** you wish to target for the A/B test from the popup.

<figure><img src="/files/xRlX87MUvQ6uYV6fMXJO" alt=""><figcaption></figcaption></figure>

* Then, from the **attribute** dropdown, select one of the attributes. For the above example, the audience category will be geography, and the attribute will be country.
* Then, from the **operation** dropdown, select one of the operations, such as 'is one of' or 'is not one of' based on your requirement. For the above example, the operation type will be 'is one of'.
* Then, provide the **value** in the input field. For the above example, the value will be the United States. You can enter multiple values. In a few of the cases, you can see the dropdown option under the values section.
* Finally, under the **targeting behavior** dropdown, select the percentage rollout option. If you want to do an A/B test between default and one of the behavior then configure the value as 50% for default and 50% for the newly created behavior. And if you want to do the A/B test between two different behaviors, then configure the value as 50% for both behaviors.

<figure><img src="/files/sivgc0awZIRxBzdKzV7E" alt=""><figcaption></figcaption></figure>

* Once the target audience is configured, make sure to click on the '**Save**' button.

#### Add Goals

Running an A/B test without a goal(s) is of no use. Goals define the effectiveness of an experience. **For example**, if you are running an A/B test on the home page, then the goal event can be clicking on the signup button or the pricing page. You can choose different types of goals based on your requirements.

* Page: Number of visitors who visit the given page path after they are part of an experience.
* Click: Number of visitors who click on the configured element, such as a button click.
* Custom: You can create your own custom events and track them based on your requirements.
* Revenue: Tracks the revenue generated from an experience.

In the experience goals tab, perform the below steps to add a goal

* Click on the '**Add goals**' button.

<figure><img src="/files/0pLM7TFFEJNI6pTN1u75" alt=""><figcaption></figcaption></figure>

* In the popup, select the type of goal event you want to add.

<figure><img src="/files/Ro1Z1HUXd0mG1ZiaUayu" alt=""><figcaption></figcaption></figure>

* Then select the goal event that you want to add.&#x20;

<figure><img src="/files/K2ldfEnrTEodsS6aCSXG" alt=""><figcaption></figcaption></figure>

* Enter the access code and click on the '**Add**' button.

<figure><img src="/files/Ypj7V0noI9ogQXrGFTQ9" alt=""><figcaption></figcaption></figure>

* If you don't find your goal event, then you can create a new goal event by clicking on the '**Create a new goal**' option.

By default, the first goal event that you add to an A/B test will be considered the primary goal. If you have multiple goal events in an A/B test, then you can make any one of the goal events the primary goal event.

#### Preview of the A/B test

Once an A/B test is configured, make sure to preview the changes you have made to each behaviour before making it live. You can preview the behavior by clicking on the '**preview'** button present on the respective behavior.&#x20;

<figure><img src="/files/ra543GFiHMI6mwbftavK" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
If you do not see the changes in the preview, then check if the CustomFit code snippet is installed on the website. If you have installed the code snippet, then check whether your browser is blocking the opening of new tabs.
{% endhint %}

#### Taking an A/B test live

To take the A/B test live click on the power switch toggle.&#x20;

<figure><img src="/files/guccYUrsyVLCPC7Dg2e9" alt=""><figcaption></figcaption></figure>


# How to create a Split URL test

Split URL testing is a method used to compare two versions of a web page or a website by splitting the traffic between them. For example,  you have two versions of pricing page, i.e., Version 1 with URL [www.customfit.ai/pricing](http://www.customfit.ai/pricing) and Version 2 with URL [www.customfit.ai/pricing-variaition](http://www.customfit.ai/pricing-variaition). You then split your webpage traffic between these two URLs, with half of the visitors seeing Version A and the other half seeing Version B.

### Steps to create a Split URL test

#### Create an experience

* Log in to the dashboard and navigate to the Experience page from the sidebar.
* Click on the '**Create Experience**' button.

<figure><img src="/files/ghZB0pnQAALEndfgsxxU" alt=""><figcaption></figcaption></figure>

* After giving your A/B test a name and a description, click the "**Create Experience**" button.

#### Add page paths

Add the URL's of two pages you want to test. One URL will be the original page (Version A) and the other URL will be the redirection URL (Version B).

* Click on the '**Add pages**' button.

<figure><img src="/files/AjeAvMu2XVDb8yCIz1Dj" alt=""><figcaption></figcaption></figure>

* From the drop-down, select the **Simple page path match** option and enter the page URL of the original page (Version A). Once the page URL is entered, click on the '**Add**' button.

<figure><img src="/files/HuvZjqXjIMOxOqgVhnsw" alt=""><figcaption></figcaption></figure>

* Again, click on the '**Add pages**' button.
* From the drop-down, select the **Simple page path match** option and enter the page URL of the redirection page (Version B). Once the page URL is entered, click on the '**Add**' button.

<figure><img src="/files/GDC02OYnInsxrMa9zj7V" alt=""><figcaption></figcaption></figure>

#### Create behaviors

* Click on the '**Add Behavior'** button.

<figure><img src="/files/vVnrPztfAiZkWyGXSQJg" alt=""><figcaption></figcaption></figure>

* Then give a proper **Name** and **Description** for your behavior.
* Click on the '**Add'** button.

<figure><img src="/files/2MbIwzqVIffzJRCRgZcP" alt=""><figcaption></figcaption></figure>

Configure Split URL

* Click on the '**open visual editor**' button present on the behavior.
* From the popup, choose the Version A page URL. Then the Version A page will open in a visually editable way.

<figure><img src="/files/SXXcDKf5q491RMnxxLAL" alt=""><figcaption></figcaption></figure>

* Click on the \</> icon present in the toolbar.&#x20;

<figure><img src="/files/5Xq2LGQjQrFooJA9a0Ol" alt=""><figcaption></figcaption></figure>

* From the dropdown choose the '**Redirection/Split URL**' option.

<figure><img src="/files/6ZqhqAFpE87Yaq7YKE0X" alt=""><figcaption></figcaption></figure>

* Enter the Version B page URL to which you want the visitor to be redirected and then click on the '**Save Changes**' button. If you want to redirect to Version B page along with query parameters then select the '**Redirect along with query parameters?**' checkbox.

<figure><img src="/files/AHdk5i3j8Xrn5jjfIwhy" alt=""><figcaption></figcaption></figure>

* Click on the '**Finalize & Exit**' button.

<figure><img src="/files/ZzUR26vWLp8knxWJ6mrO" alt=""><figcaption></figcaption></figure>

With this configuration, anyone who lands on Version A of the pricing page will be redirected to Version B of the pricing page.

#### Targeting audience

You can target split URL tests to specific audience segments. For example, you can restrict the split URL test to visitors from the United States.

* Click on the '**Add Rules**' button.

<figure><img src="/files/mqa5EnILqN4BSVg9l7wN" alt=""><figcaption></figcaption></figure>

* Choose the **audience category** you wish to target for the split URL test from the popup.

<figure><img src="/files/YL2IotJh9rhQafccYM4V" alt=""><figcaption></figcaption></figure>

* Then, from the **attribute** dropdown, select one of the attributes. For the above example, the audience category will be geography, and the attribute will be country.
* Then, from the **operation** dropdown, select one of the operations, such as 'is one of' or 'is not one of' based on your requirement. For the above example, the operation type will be 'is one of'.
* Then, provide the **value** in the input field. For the above example, the value will be the United States. You can enter multiple values. In a few of the cases, you can see the drop-down option under the values section.
* Finally, under the **targeting behavior** dropdown, select the percentage rollout option. Then configure the value as 50% for the default and 50% for the newly created behavior.

<figure><img src="/files/D2K3ERyxweLq5488uSE2" alt=""><figcaption></figcaption></figure>

* Once the target audience is configured, make sure to click on the '**Save**' button.

#### Add goals

In the experience goals tab, perform the below steps to add a goal.

* Click on the '**Add goals**' button.

<figure><img src="/files/UnhIjHJehTgzuepQrXnK" alt=""><figcaption></figcaption></figure>

* In the popup, select the type of goal event you want to add.

<figure><img src="/files/vW8AhaAASztve3iDhV7t" alt=""><figcaption></figcaption></figure>

* Then select the goal event that you want to add.

<figure><img src="/files/pbE3sSyKN7GBeLDYbL59" alt=""><figcaption></figcaption></figure>

* Enter the access code and click on the '**Add**' button.

<figure><img src="/files/hnhkYO9Voe4idrxNaZb8" alt=""><figcaption></figcaption></figure>

* If you don't find your goal event, then you can create a new goal event by clicking on the '**Create a new goal**' option.

By default, the first goal event that you add will be considered the primary goal. If you have multiple goal events, then you can make any one of the goal events the primary goal event.

#### Preview of the split URL test

Once a split URL test is configured, make sure to preview it before taking it live.

* Click on the '**Preview**' icon present on the behavior.

<figure><img src="/files/2QqwmJcnmZRxStxaqDYy" alt=""><figcaption></figcaption></figure>

* Then from the popup select the Version A page URL.&#x20;

<figure><img src="/files/wpgmQ0Hl0QrrwaW83a5W" alt=""><figcaption></figcaption></figure>

Instead of opening Version A page you will be redirected to Version B page. If you see this behavior then your split URL test has been configured properly.

{% hint style="info" %}
If you do not see the changes in the preview, then check if the CustomFit code snippet is installed on the website. If you have installed the code snippet, then check whether your browser is blocking the opening of new tabs.
{% endhint %}

#### Taking a split URL test live

To take the split URL test live click on the power switch toggle.

<figure><img src="/files/SbxeMAaqQo180j7wX1dv" alt=""><figcaption></figcaption></figure>


# How to create a Shopify theme based testing

Shopify Theme-Based Split URL Testing allows you to test two or more completely different theme versions of your Shopify store to identify which layout, design, or user flow delivers higher conversions. Unlike traditional A/B testing, which tests changes within a single page, this method lets you run experiments across different themes.

For example, you might want to compare your current theme with a newer one, or test a version of your store with a festive layout against a standard layout. CustomFit.ai splits your visitors between them based on your defined targeting or automatically distributes traffic equally.

This type of testing is especially useful when:

* You’re redesigning your Shopify store and want to test the new layout without affecting your live site.
* You want to compare fast-loading, minimal themes vs rich media-heavy themes.
* You want to validate a theme optimized for mobile before making it live for all users.

### Steps to create a Theme based testing

#### Create an experience

* Log in to the dashboard and navigate to the Experience page from the sidebar.
* Click on the '**Create Experience**' button.

<figure><img src="/files/ghZB0pnQAALEndfgsxxU" alt=""><figcaption></figcaption></figure>

* After giving your test a name and a description, click the "**Create Experience**" button.

#### Add page paths

* Click on the '**Add pages**' button.

<figure><img src="/files/ciCHFJU7bnLGSns7CHDX" alt=""><figcaption></figcaption></figure>

* From the drop-down, select the **All Pages** option and click on the '**Add**' button.

<figure><img src="/files/oTAyTSYsSEVUAas1QWWv" alt=""><figcaption></figcaption></figure>

#### Create behaviors

* Click on the '**Add Behavior'** button.

<figure><img src="/files/BykHAmRsol282okDQWFH" alt=""><figcaption></figcaption></figure>

* Then give a proper **Name** and **Description** for your behavior.
* Click on the '**Add'** button.

<figure><img src="/files/BWh8pOjwL0AlmjjMAZSO" alt=""><figcaption></figcaption></figure>

Configure Split URL

* Click on the '**open visual editor**' button present on the behavior.
* Click on the \</> icon present in the toolbar.&#x20;

<figure><img src="/files/y52Ftn4xlQm5awNdBzeY" alt=""><figcaption></figcaption></figure>

* From the dropdown choose the '**Global JavaScript**' option.

<figure><img src="/files/7Bt5HmFE7g0MVuz18l16" alt=""><figcaption></figcaption></figure>

* Copy and paste the code below in the JavaScript editor.

```javascript
(function() {
  var themeName = 'newTestTheme', themeQueryParam = {
        _ab: 0,
        _fd: 0,
        _sc: 1,
        pb: 0,
        preview_theme_id: 180738294057//update this with your theme id 
    };
    if(Shopify && Shopify.theme && Shopify.theme.id != themeQueryParam.preview_theme_id) {
        document.body.style.display="none";
          
    // add theme details above
    var updateQueryStringParameter = function(uri, key, value) {
        var re = new RegExp("([?&])" + key + "=.*?(&|#|$)", "i");
        if( value === undefined ) {
            if (uri.match(re)) {return uri.replace(re, '$1$2');} else {return uri;}
        } else {
            if (uri.match(re)) {return uri.replace(re, '$1' + key + "=" + value + '$2');
            } else {
                var hash =  '';
                if( uri.indexOf('#') !== -1 ){hash = uri.replace(/.*#/, '#');uri = uri.replace(/#.*/, '');}
                var separator = uri.indexOf('?') !== -1 ? "&" : "?";
                return uri + separator + key + "=" + value + hash;
            }
        }
    };
    var themeUrl = window.location.href;
    for (var key in themeQueryParam) {
        themeUrl = updateQueryStringParameter(themeUrl, key, themeQueryParam[key]);
    }
  
        window.location.href = themeUrl;
        

    }
})();

const style = document.createElement('style');
style.textContent = `#PBarNextFrameWrapper { display: none !important; }`;
document.head.appendChild(style);
```

<figure><img src="/files/6taggX4Cwzey4jubtfDX" alt=""><figcaption></figcaption></figure>

* In the editor, go to line number 6 and change the preview\_theme\_id to your new theme id.
* Also, add the following JS by clicking on **JS for Default behavior** to hide the preview bar.

```
const style = document.createElement('style');
style.textContent = `#PBarNextFrameWrapper { display: none !important; }`;
document.head.appendChild(style);
```

<figure><img src="/files/xOFeWse3BYA5JLUqYeJc" alt=""><figcaption></figcaption></figure>

* Click on the **Save Changes** button.&#x20;
* Click on the '**Finalize & Exit**' button.

<figure><img src="/files/4Cf3K1IMPMTeRIcE0Dhd" alt=""><figcaption></figcaption></figure>

#### Targeting audience

You can target a Shopify theme to specific audience segments. For example, you can restrict the Shopify theme to visitors coming from a particular campaign. Alternatively, you can target it at all visitors.

* Click on the '**Add Rules**' button.

<figure><img src="/files/AjAWjokpXbyUJYesmwB4" alt=""><figcaption></figcaption></figure>

* Choose the **audience category** you wish to target for the Shopify theme test from the pop-up.

<figure><img src="/files/CbaRPLQ3fG5H91rQuEQ2" alt=""><figcaption></figcaption></figure>

* Then, from the **attribute** dropdown, select one of the attributes. For the above example, the audience category will be UTM Parameters, and the attribute will be UTM Campaign.
* Then, from the **operation** dropdown, select one of the operations, such as 'is one of' or 'is not one of', based on your requirement. For the above example, the operation type will be 'is one of'.
* Then, provide the **value** in the input field. For the above example, the value will be the campaign name. You can enter multiple values. In a few of the cases, you can see the drop-down option under the values section.
* Finally, under the **targeting behavior** dropdown, select the percentage rollout option. Then, configure the value as 50% for the default and 50% for the newly created behavior.

<figure><img src="/files/RkMDIIe3M6tUUC9w4wmN" alt=""><figcaption></figcaption></figure>

* Once the target audience is configured, make sure to click on the '**Save**' button.

#### Add goals

In the experience goals tab, perform the below steps to add a goal.

* Click on the '**Add goals**' button.

<figure><img src="/files/4LrA4zAL96DrH0aZbzo3" alt=""><figcaption></figcaption></figure>

* Then, give the goal name and select the event type based on your requirement. For example, if you want to track the number of ATC's, then select the Shopify option from the dropdown.

<figure><img src="/files/HgBAUWeJKc86Vr6x4cGW" alt=""><figcaption></figcaption></figure>

* Next, from the events list, select the event that matches your requirement. In this case, let's choose the Product Added to cart option from the dropdown.&#x20;

<figure><img src="/files/NZ3xGZNRcZzOvZsYcjSv" alt=""><figcaption></figcaption></figure>

* If you want to add a specific product to the track, then click on Add rules, and then enter the specific product ID in the rule.&#x20;

<figure><img src="/files/jWIjFZc4e0chn1fr254g" alt=""><figcaption></figcaption></figure>

* Finally, select the Goal evaluation type from the dropdown based on your requirement. For example, select Unique visitors if you want to see how many unique visitors performed Add to cart for the specified product. Atlast click on the **Create** button.

<figure><img src="/files/iNrQr0duy4gpFhwyP76W" alt=""><figcaption></figcaption></figure>

By default, the first goal event that you add will be considered the primary goal. If you have multiple goal events, then you can make any one of the goal events the primary goal event.

#### Taking the test live

To make the Shopify theme test live, click on the power switch toggle.

<figure><img src="/files/aEpCnUimd9z96iCfErww" alt=""><figcaption></figcaption></figure>

#### Important Note

After powering off or terminating a theme-level A/B test, it's crucial to immediately delete the test theme that was created during the experience. This is because Shopify may store theme identifiers in the user's cookies. If the test theme is not deleted, returning visitors might continue to see the test version even after the experience is turned off — leading to inconsistent behavior and inaccurate data.

To avoid this:

* Delete the test theme associated with the A/B experience right after turning it off.
* If you want to keep a backup of the theme, duplicate it first, then proceed to delete the original test theme.
* Make sure the theme you delete is the one used specifically for testing — not your live or main theme.

Following these steps ensures a clean rollback and prevents any residual effects from the A/B test.


# How to create an AI Conversion Optimize experience

AI Conversion Optimize uses user data and machine learning to show visitors the best webpage/landing page version for them. It constantly learns what works best for each type of visitor, making sure everyone sees the page most likely to interest them, for a smoother and more effective experience.&#x20;

AI Conversion Optimize is applied to the majority of your website’s visitors, typically around 80%. This allows the AI to gather sufficient data to determine if its optimizations lead to higher conversions compared to the default website setup.&#x20;

#### Create an AI Conversion Optimize experience

* Log in to the dashboard and navigate to the Experience page from the sidebar.
* Click on the '**Create Experience**' button.

<figure><img src="/files/yioco7TulrArQqNpc5xL" alt=""><figcaption></figcaption></figure>

* After giving your experience a name and a description, click the "**Create Experience**" button.

<figure><img src="/files/ZXPVsIqFLg5X5LoYxQjy" alt=""><figcaption></figcaption></figure>

#### Add page paths

Add the page path(s) on which you want to run AI Conversion Optimization. **For example**, if you want to run on the pricing page, then enter the pricing page path.

* Click on the '**Add pages**' button.

<figure><img src="/files/uzzVDDEqaW3scUkOTahn" alt=""><figcaption></figcaption></figure>

* From the drop-down, select the required option.
  * **Simple page path match**: It checks if the given page path matches exactly.
  * **Page path contains**: It checks if the page path contains the given text.

<figure><img src="/files/WtpB69YJq3JeFD9G7nt6" alt=""><figcaption></figcaption></figure>

* Enter the page path and click on the '**Add**' button.

<figure><img src="/files/6KiCyWXctihTK1WvImqB" alt=""><figcaption></figcaption></figure>

#### Create behaviors

You can create multiple behaviors (variations) on your website or webpage. When you create an experience, then by default, a default behavior will be created. This will be your default (control) website, and you will not be allowed to delete default behavior. To add the new behavior

* Click on the '**Add Behavior'** button.

<figure><img src="/files/uzzVDDEqaW3scUkOTahn" alt=""><figcaption></figcaption></figure>

* Then give a proper **Name** and **Description** for your behavior.
* Click on the '**Add'** button.

<figure><img src="/files/gnJuWEUlenRUBQvjGkyZ" alt=""><figcaption></figcaption></figure>

* To edit the webpage, click on the '**open visual editor**' button present on the respective behavior.

**Targeting audience**

You can target the AI conversion optimize experience to specific audience segments.  For example, if you want to run AI conversion optimize experience only to USA visitors with mobile devices.

* Click on the '**Add Rules**' button.

<figure><img src="/files/uzzVDDEqaW3scUkOTahn" alt=""><figcaption></figcaption></figure>

* Choose the **audience category** you wish to target from the popup.

<figure><img src="/files/8aUuJNEcNqGXMIALvLmS" alt=""><figcaption></figcaption></figure>

* Then, from the **attribute** dropdown, select one of the attributes. For the above example, the audience category will be geography, and the attribute will be country.
* Then, from the **operation** dropdown, select one of the operations, such as 'is one of' or 'is not one of' based on your requirement. For the above example, the operation type will be 'is one of'.
* Then, provide the **value** in the input field. For the above example, the value will be the United States. You can enter multiple values. In a few of the cases, you can see the dropdown option under the values section.
* Finally, under the **targeting behavior** dropdown, select the percentage rollout option. If you want to do an A/B test between default and one of the behavior then configure the value as 50% for default and 50% for the newly created behavior. And if you want to do the A/B test between two different behaviors then configure the value as 50% for both behaviors.
* Once the target audience is configured, make sure to click on the '**Save**' button.

#### Add goals

Running an outbound experience without a goal(s) is of no use. Goals define the effectiveness of an experience. **For example**, if you are running an outbound experience on the home page, then the goal event can be clicking on the signup button or the pricing page. You can choose different types of goals based on your requirements.

* Page: Number of visitors who visit the given page path after they are part of an experience.
* Click: Number of visitors who click on the configured element, such as a button click.
* Custom: You can create your own custom events and track them based on your requirements.
* Revenue: Tracks the revenue generated from an experience.

In the experience goals tab, perform the below steps to add a goal

* Click on the '**Add goals**' button.
* In the popup, select the type of goal event you want to add.
* Then select the goal event that you want to add.
* Enter the access code and click on the '**Add**' button.
* If you don't find your goal event, then you can create a new goal event by clicking on the '**Create a new goal**' option.

By default, the first goal event that you add to an A/B test will be considered the primary goal. If you have multiple goal events in an A/B test, then you can make any one of the goal events the primary goal event.

**Preview of the experience**

Once an AI Conversion Optimize experience is configured, make sure to preview the changes you have made to each behaviour before making it live. You can preview the behavior by clicking on the '**preview'** button present on the respective behavior.

{% hint style="info" %}
If you do not see the changes in the preview, then check if the CustomFit code snippet is installed on the website. If you have installed the code snippet, then check whether your browser is blocking the opening of new tabs.
{% endhint %}

**Taking the experience live**

To take the A/B test live, click on the power switch toggle.


# How to create an Outbound Experience

#### Creating an Outbound Experience

* Open the website or the landing page in the new tab that you wish to personalize.
* Right-click anywhere on the page and select the "Personalize this page" option. If you are unable to locate this option, the CustomFit Chrome extension is not installed. The CustomFit Chrome extension is available for installation from [here](https://chromewebstore.google.com/detail/customfitai-website-ab-te/ofhlnapgheofdhlliafiaalkefdpbcpl).
* Make sure you have logged into the CustomFit dashboard page otherwise, you will be redirected to the login page for authentication.&#x20;
* After authentication, you will be redirected to a website or landing page with a popup where you will find an option to create a new campaign.&#x20;
* Click on the '**Create a new campaign**' button and give the name. Once the name has been given, click on the '**Create**' button.

{% embed url="<https://youtu.be/LiX6MJys9O4>" %}

If you are already in the visual editor mode and want to create a new outbound experience then,&#x20;

* At the top left, you can see the experiences button
* Click on it and you will see the list of experiences that are already created.
* At the last, you will see an option "Create Campaign" option.&#x20;
* Click on it and create a new campaign.

<figure><img src="/files/cjSv5kgMxwv6s91dtBrD" alt=""><figcaption></figcaption></figure>

#### Adding new pages

If you want to add new pages to your existing experience, then

* At the top left, you can see the Experiences button
* Click on it, and you will see the list of experiences.
* Then click on the arrow icon of the respective experience to which you want to add a new page.
* From the options, select '**Personalized pages**'.
* Enter the page url which you want to add and click on the '**Add page**' button.

#### Add Goals

Running an outbound experience without a goal(s) is of no use. Goals define the effectiveness of an experience. **For example**, if you are running an outbound experience on the home page, then the goal event can be clicking on the signup button or the pricing page. You can choose different types of goals based on your requirements.

* Page: Number of visitors who visit the given page path after they are part of an experience.
* Click: Number of visitors who click on the configured element, such as a button click.
* Custom: You can create your own custom events and track them based on your requirements.
* Revenue: Tracks the revenue generated from an experience.

To add the goals

* Click on the "Insights" button present in the top bar of the visual editor.
* Click on the goals tab.
* Then click on the '**Add goals**' button.
* In the popup, select the type of goal event you want to add.
* Then select the goal event that you want to add.
* Enter the access code and click on the '**Add**' button.
* If you don't find your goal event, then you can create a new goal event by clicking on the '**Create a new goal**' option.

By default, the first goal event that you add will be considered the primary goal. If you have multiple goal events, then you can make any one of the goal events the primary goal event.

If you want to track the goal event through a visual editor, then

* Click on any element for which you wish to track it as a goal.
* In the '**editor palette**', click on the '**Action**' option.
* Then, under the '**Onlick**' function, select the '**Track click**' option.
* Finally, give the name of your goal event and click on the '**save**' button.

#### Preview

Once you're done editing or personalizing the website or landing page, you can preview what the webpage looks like to make sure that the changes are as expected. To enter into preview mode, click on the 'Preview/Interactive' toggle present in the app bar. In the preview mode, you can also copy and send the link to your team members if you need to get any approvals or suggestions.

{% hint style="info" %}
If you copy and send the preview link to your team members, then make sure that before you enter preview mode, you publish the changes.
{% endhint %}

{% hint style="info" %}
If you do not see the changes in the preview, then check if the CustomFit code snippet is installed on the website. If you have installed the code snippet, then check whether your browser is blocking the opening of new tabs.
{% endhint %}

#### Generating Link

Once you are done editing or personalizing the website or landing page, click on the '**Publish**' button in the app bar to save all your changes. Then click on the '**Get Link**' button to generate a unique, sharable, tiny URL. Visitors who land on the website or landing page through this link will see the personalized content.

If there is any dynamic content present in your experience, then CustomFit auto-detects it and requests that you provide the value before generating the unique link. All the dynamic content will be encoded in the tiny URL, and it won't be visible to the visitor.

If you want to add the expiry timer to the generated links, you can do so by clicking on the 'Advanced' option while generating the link. You can provide the timer either in minutes, hours, or days. If the visitor lands on the website or landing page through this link after the given time, then they won't see the personalized content; instead, they will see the default content.&#x20;

#### Power off the experience

If you want to power off the experience, then

* At the top left, you can see the Experiences button
* Click on it, and you will see the list of experiences.
* Then click on the arrow icon of the respective experience that you wish to power off.
* From the options, select '**Power off**'.
* In the confirmation popup click on the '**Ok**' button and the experience will be powered off.


# Creating an Experience

Any website should change and modify itself in various ways to make sure that they deliver the most relevant content, resulting in a personalized visitor experience when they land on your website. Providing better visitor experience results in increasing the desired goals such as the number of sign-ups, the number of demo requests, etc.

CustomFit.ai dashboard makes experience creation easy.&#x20;

* Log in to the dashboard and navigate to the Experience page from the sidebar

![](/files/-MUkQHCdBHgIdaJyqDut)

* Click on the "Create Experience" button

![](/files/-MUkQlCX_jJRLxWJck6v)

* Enter the following details:
  1. **Name:** A meaningful name for your experience that will allow you to easily locate it in the dashboard.
  2. **Description:** Briefly describe what this experience is about. This will help your team members understand the experience's purpose.
  3. **Priority:** Provide the priority for each experience you are creating. Priority is a numerical value and it is used to determine the priority of an experience. For example, if you have changed the background image in two of the experiences, then the experience with higher priority will serve the background image for the website. The lower value has the lowest priority and the higher value has higher priority. If you do not give any value then by default the priority value will be set to 1.
  4. **Track:** Enable this field if you wish to track the events under this experience so that you can see the journey of the visitors under the experience.&#x20;

![](/files/-MUkQfYpVpfcZdTjzqxr)

* Once all the details are provided then click on the "Create Experience" button

![](/files/-MUkQwNA84WNZpwxOHv3)


# Experience Page Paths

Once you have created an experience the next step is to add the page path/s which you wish to personalize. **For example**, if you wish to personalize the home page and pricing page then, you can personalize it out by adding both the pages in the same experience. CustomFit provides different options to add the page paths.�

### **Page path is**

Use this option if you wish to match the exact URL of the website page path you want to personalize. **For example**, if you want to personalize the pricing page then type the full URL <https://customfit.ai/pricing> in the input field.&#x20;

To add the page path

* Click on Add page paths

![](/files/-MUkS4BqzxwqCf4UIr07)

* From the drop-down select, the "**Page path is**" option

![](/files/-MUkSGD5vR4T3rgagz-O)

* Enter the exact URL of the website page path which you wish to personalize. Make sure you click on *enter* button once you type the URL

![](/files/-M_t4EDyvEwvpbA8-h0X)

* Click on Add button

![](/files/-M_t5NbYx2TP_RkfhQaz)

### **Page path contains**:&#x20;

This option looks for whether the website page path contains the specified text. If it contains then personalization will be applied. Use this option if you have multiple page paths with the same text and you want to personalize all the page paths.&#x20;

**For example**, if you wish to personalize all the page paths which contain blogs in the URL then in the input field enter the text which you want to check i.e., blogs. In the *Reference page path* field enter the full URL of one of the page paths so that you can edit it in the visual editor i.e., <https://customfit.ai/blogs/growth-marketing>. So the changes made to the above page path will be applied to <https://customfit.ai/blogs/growth-marketing>, <https://customfit.ai/blogs/converion-rate-optimization>, and so on.

To add the page path

* Click on Add page paths

![](/files/-MUkS4BqzxwqCf4UIr07)

* From the drop-down select, the "**Page path contains**" option

![](/files/-MUl1nA_uYsXVbHLPhnB)

* Enter the text which you wish the check whether the page path URL contains the entered text. Make sure you click on *enter* button once you type the text

![](/files/-MUl1yokrabdEcJO79GT)

* Enter the exact URL of a page as the reference page path to open it in the visual editor. Make sure you click on *enter* button once you type the URL

![](/files/-MUl24dDWQ4nNGEwlbLo)

* Click on Add button

![](/files/-MUl2E7-z30Kc9Pvvymw)

{% hint style="info" %}
You cannot add multiple texts in the input field. **For example**, a website page path containing both blogs & marketing.
{% endhint %}

### Page path regex:

Use this option if you wish to personalize the pages which have a specific pattern in the URL.&#x20;

**For example**, if you wish to personalize all the comparison pages then in the input field enter the regex pattern to be matched in the URL i.e., ***\\/comparisons\\/.\****  which indicates all the comparison pages in the website should be personalized. In the *Reference page path* field enter the full URL of one of the page paths so that you can edit it in the visual editor i.e., <https://customfit.ai/comparison/company1.&#x20>;

To add the page path

* Click on Add page paths

![](/files/-MUkS4BqzxwqCf4UIr07)

* From the drop-down select, the "**Page path regex**" option

![](/files/-MUl2gtR9Sju9nY2oFZx)

* Enter the regex which you wish to check whether the page path URL contains the entered regex. Make sure you click on *enter* button once you type the regex

![](/files/-M_t4dClyveqxD7OQvrR)

* Enter the exact URL of a page as the reference page path to open it in the visual editor. Make sure you click on *enter* button once you type the URL

![](/files/-M_t4kooXpy8sgCpVlqr)

* Click on Add button

![](/files/-M_t5aV0-zNCJwOkxfyE)

### Pause personalization for a specific page&#x20;

If you wish to pause the personalization for a specific page from an experience then, change the status from Live to Pause by clicking on the status icon of the respective page path.

![](/files/-MUl3_gYizaQ4G1U4xXs)

### Delete the page from an experience

If you wish to delete a particular page from an experience then, click on the delete icon of the respective page path.

![](/files/-MUl3hpm4xgdIk-qLkNB)

{% hint style="danger" %}
If you delete a page from an experience then all the changes made to the page will be deleted and it cannot be reverted back.
{% endhint %}


# Experience Targeting

The experience targeting tab lets you create different behavior(variations) of your website and also lets you determine which visitors will see each behavior of an experience.

## Behavior

A single experience can have multiple behaviors. When you create an experience then by default a default behavior will be created. This will be your default(control) website and you will not be allowed to delete default behavior.

### Adding a new behavior

* To add a new behavior click on the **Add Behavior** button

![](/files/-M_zizPr1FTAn5FhK7YR)

* Then give a proper **Name** and **Description** for your behavior

![](/files/-M_zjPzAPmN8aS9Vuthf)

* Click on the **Add** button

![](/files/-M_zjdK2CND9oglVGltO)

### Updating behavior name or description

If you wish to update the behavior name or description then

* Click on the three dots of the respective behavior

![](/files/-M_zjv6qunJtIFMRqtJN)

* From the drop-down select the **Edit** option

![](/files/-M_zk3OjHrReJHc9atCP)

* In the popup update the behavior name/description

![](/files/-M_zkPNJL4pbbMfw_rjP)

* Click on the **Update** button

![](/files/-M_zkZDlY-miqN6mS5Sd)

### Deleting a behavior

If you wish to delete any one of the behavior then

* Click on the three dots of the respective behavior

![](/files/-M_zl1iTsr8XBVwhYSrO)

* From the drop-down select the **Delete** option

![](/files/-M_zlBSUKSVXka8xQhjk)

* In the confirmation popup enter the access code
* Click on the **Yes** button

{% hint style="warning" %}
You cannot delete a behavior if it is part of some rules.
{% endhint %}

### Cloning of the behavior

If you have one behavior and made some changes in that behavior. And now, if you want to create new behavior for a different section of the audience. In the new behavior you need to change only one element and, the rest of the changes are similar to the old behavior. Then there is no need to redo all the changes once again. All you need to do is clone the existing behavior and do the necessary change. To clone the behavior

* Click on the three dots of the respective behavior

![](/files/-M_zl07a1KtTPc_n4z_T)

* From the drop-down select the **Make a clone** option

![](/files/-M_zld2a9mnsNjNbh3O2)

* Give the behavior **Name** and **Description**

![](/files/-M_zmv8wdmpWbrmdcpIh)

* Click on the **Clone** button

![](/files/-M_zn5cr2GEoB5634kyi)

**For example**, if you have created the behavior as the first-time visitor and personalized the hero text, CTA, and background image. Now you want to create new behavior for the repeated visitor just by changing the hero text, whereas the CTA and background image should remain the same as the first-time visitor. Then you can clone the first-time behavior(CustomFit creates new behavior with all the changes pre-configured from the cloned behavior) and then you can change only the hero text.�

{% hint style="warning" %}
You cannot have two behaviors with the same name.
{% endhint %}

### Editing the behavior

CustomFit.ai visual editor lets you edit different behaviors of your website quickly with zero code changes. You can know more about visual editor options over here to edit a behavior

* Click on the **Open Visual Editor** button

![](/files/-M_znbtX3fOx_Weq4bS3)

* Then from the popup select the page of the website which you wish to edit

![](/files/-M_zoOGyFyU2hgKIPKWI)

### Preview behavior

Once you're done editing the behavior, you can preview the changes made before making it live to make sure that the changes are as expected and also to check that there are no broken links. You can also send the preview link to your team member if you need to get any approvals or suggestions. To view the behavior in the preview mode

* Click on the **Select Preview** button of the respective behavior

![](/files/-M_zpgdqKPFLXYBPb22J)

* From the drop-down select the **Preview** option

![](/files/-M_zppy7pYc3Oyra0jQe)

* If there are multiple pages in the behavior then from the drop-down select the page which you want to preview

![](/files/-M_zq4SGEiu0g9PXmBuO)

To send the preview link to your team member

* Click on the **Select Preview** button of the respective behavior

![](/files/-M_zpgdqKPFLXYBPb22J)

* From the drop-down select the **Share Preview** option

![](/files/-M_zqWQYmx5tcd3IvW5R)

* If there are multiple pages in the behavior then, from the drop-down select the page which you wish to generate a link

![](/files/-M_zq4SGEiu0g9PXmBuO)

* If you wish to directly send the preview link then, click on the **Copy Preview Link** button

![](/files/-MUlDIY90HmS5fpn61EX)

* If you wish to send the preview link through an email then, enter the email id in the given field and click on **Send Email** button

![](/files/-M_zrEKml83j9Ix_YoIj)

{% hint style="info" %}
If you do not see the changes in the preview then, check if the CustomFit code snippet is installed on the website. If you have installed the code snippet then, check whether your browser is blocking the opening of new tabs.
{% endhint %}

## Targeting visitors based on rules

CustomFit.ai allows you to target different behaviors to different visitors based on various attributes such as the geography of the visitors, the device of the visitors, based on the interaction with the website, and so on.

You can target a more specific audience to a particular behavior by writing the rules. Each rule has four parts:  an attribute, an operator, values, and the behavior to be served. **For example**, if you want to serve the USA behavior to visitors coming from the USA then, the rule will be `Country` IS\_ON&#x45;*\_*&#x4F;F United States. Here, an attribute is `Country`, an operator is `IS_ONE_OF`, value is the `United States` and the behavior to be served is `USA` behavior.

![](/files/-M_t5774AK6famXqJqhr)

A rule can have multiple conditions where the visitors need to satisfy all the conditions to be served with a specified behavior. **For example**, if you wish to serve the USA behavior to visitors coming from USA and the device type is of Mobile.

![](/files/-M_t5pni2Fzw6yGykFsu)

If you have multiple behaviors and want to serve different behaviors to a different segment of visitors then, you can write multiple rules. **For example**, if you have two behaviors i.e., India & USA then, you can have first rule serving to Indian behavior and the second rule serving the USA behavior.&#x20;

![](/files/-Ma--1-o_BN0K1CPK2aE)

The first rule will have the highest priority, the second rule will have the second-highest priority, and so on the last rule will have the least priority.&#x20;

Below are the few instructions which make you writing the rules easier:

* To copy a rule click on the copy icon above the rule to be copied

![](/files/-M_zvfQoXVAd2ADv9g2V)

* To delete a rule click on the delete icon above the rule to be deleted

![](/files/-M_zvnKqk9CVCEuT3rCO)

* To add a new rule click on the Add button or Add Rule button

![](/files/-M_zvvJk93Poeliam6fz)

* To copy a condition click on the copy icon beside the condition to be copied

![](/files/-M_zwNrRusTg5j8ypodr)

* To delete a condition click on the delete icon beside the condition to be deleted

![](/files/-M_zwk1AQcGmaUSdzto5)

* To add a new condition click on the "+" icon which is present beside the last condition

![](/files/-M_zwz5tXVgtMzaHy6Qw)

You can also give a name to the rule. **For example**, if you are writing a rule to segment the visitors coming from the INDIA then, you can write the rule name as Indian Visitors. � To change the rule the name

* Click on the rule name
* Change the rule name as per you requirement
* Click on yes icon to change the rule name or click on no icon to retain the same rule name

![](/files/-M_yHpBNWIej5KFuSPES)

CustomFit allows you to write a rule-based on various visitors attributes. [Learn more.](https://doc.customfit.ai/audience-segments/geo-location)

## Percentage Rollout <a href="#percentage-rollouts" id="percentage-rollouts"></a>

If you want to test out the new behavior for a small section of visitors then, make use of the percentage rollout option. **For example**, you can serve the sales behavior only to the 30% of the visitors with sales attributes and the remaining 70% of the visitors with the default behavior. The percentage rollout option can also be used to determine how the personalized behavior is performing when compared to default behavior by splitting the traffic that matches the given rule.&#x20;

![](/files/-MUlHSLQpHP1Yp1NYwYN)

## Default Rollout

If a visitor does not fall under any one of the written rules then, based on the default rollout respective behaviors will be served.

![](/files/-M_t3h1vR9sZp19P4JFW)

When you make any changes in the targeting page and try to switch to other tabs without saving the changes then you will be prompted with a confirmation popup. If you wish to save the changes made before moving to the other page then click on the **Stay** button.

![](/files/-M_zxGXmhqxhMNs7UwWO)

If you decide to ignore the changes and move to other pages then click on **Leave** button.

![](/files/-M_zxdTYozwvBXbkrROF)


# Visual editor

![](https://lh6.googleusercontent.com/qhG-TKuNvpyLZi9ZvyVgQoCfa3XT_aAb2qF_PSOLrafa1TtYLQz7Recf_tD6AXJ3gHfzMYYNQ--5BglS8liD6NOJ8y7jaXPqzNIyO-y76fPEe5AKI6KIBE0emyZBRPF5RLaexW98)

* Click on the open visual editor

![](https://lh5.googleusercontent.com/BVY3FwtK76FrIxrvAErcWGUpzuR9u650lpi7n-Oqmt3rh77BN7yqAwi-W8zg6OkODJTeG74ICCZr4HuWxvvUcn9OE5_Di3JzvdqkMk0IyjQ-Nxrpg37IKUx_otv_GBr5_0QzUxmq)

* Choose the page path from the dropdown which you wish to edit

![](https://lh6.googleusercontent.com/wYHZbX7SRRsUSMweH64M-3uu2ut1OxRlCiGwUjcafB2HT3V5AGPwn1Qyu2kzofjIRVRZjW7IWcxk-Uq65CX25qXzSyUJ2d47uKvWLBdweTRsy8ufZ9a12DP2ZBiMhO0Jr7hAlcWK)

* Once you select the page path, it's redirected to the visual editor page.&#x20;


# Experience Goals

Providing a personalized experience without a goal/s is of no use. Goals define the effectiveness of the personalization which you have provided for a segment of visitors. **For example**, if you are personalizing the home page then, the goal event can be the click on the Signup button.

#### Types of goal events

* **Page view**: Loading of a particular page after the visitor has seen the personalized behavior. **For example**, a visitor seeing the personalized home page and then visiting the thank you page(i.e., goal event).
* **Click**: A visitor performing a certain action after seeing the personalized behavior. **For example**, a visitor clicking on the Contact us button(i.e., goal event) after seeing the personalized home page.

### Adding Goal Events

* Click on the experience in which you want to add the goals

![](/files/-MZwln_KsnvBQBYX8Q4U)

* Navigate to Goals tab

![](/files/-MUn3chQeotoOMhRWYgh)

* Click on Add Goal Events button

![](/files/-MZwmUK0S5gLDF_d7dnZ)

* Then from the drop-down select the event or multiple events(Page view/Click) which you wish to make it as the goal event

![](/files/-MZwnTU5rtSgbGGv8FkD)

* Enter the access code and click on **Add** button

![](/files/-MZwoAONNrUbbB2ehacV)

Then you see the goal events

![](/files/-M_udMRAfx37C4BfywrC)

### Deleting Goal Event

* Click on the delete icon of the respective goal event which you wish to delete

![](/files/-MZwrplt77P64fVZvIvX)

* Enter the access code and click on **Yes** button to confirm the deletion

![](/files/-M_uf_7Vp7poSg21Ws2s)

### Reset goal event

* Click on the experience from which you want to reset the goal event

![](/files/-MZwln_KsnvBQBYX8Q4U)

* Click on the Goals tab

![](/files/-MUn3chQeotoOMhRWYgh)

* Click on the reset button of the respective goal event for which you want to reset the values to zero

![](/files/-MZwsh-3JltnBYijXIbm)

### Goal Insights

For each goal you have added to an experience, CustomFit provides the following insights

![](/files/-MZy7AxnqNbGmCL9V_IE)

* **Name:** Name of the behavior under which the goal event is triggered
* **Sessions:**&#x20;
  * Total: Total number of sessions under the personalized/default behavior
  * Unique: Total number of sessions under the personalized/default behavior from the unique visitors.
* **Goals:**
  * Total: Total number of times goal event is triggered(Page view/Click) under&#x20;

    the personalized/default behavior
  * Unique: Total number of times the goal event is triggered(Page view/Click) under the personalized/default behavior from the unique visitors.
* **Goals achieved:** Total number of times goal event is triggered. Atleast one goal event is enough to increment this goal count incase of multiple goal events
* **Conversion rate:** It gives the percentage of the unique visitors who experienced the personalization and triggered the goal event
* **Lift:** It gives the percentage of the personalized behavior change when compared with the different behaviors. By default we will be comparing with the default behavior(Controlled version of the website)
* **Stat sig:** It indicates the confidence that the goal triggered is reliable and not due to chance. By default, we compare the statistical significance with the default behavior.&#x20;
* **Property insights:** It consists of various visitor's properties when the goal event was triggered. For example, the total number of visitors from the specific city who triggered the goal event under a personalized behavior/default behavior &#x20;

#### Calculate the lift against

By default the data is displayed for the last 7 days. You can also select different days or select the custom date range.

![](/files/-M_A7oCxjkUl7ffZi4GN)

When you click on custom you need to select the From and To dates

![](/files/-M_A8O2zykZPNkCNyU19)

{% hint style="info" %}
FROM date cannot be greater than the TO date

FROM date cannot exceed from the last 3months&#x20;

TO date cannot exceed from the current date
{% endhint %}

By default, the lift will be calculated against the default behavior. If you wish to calculate the lift against different personalized behavior then

* Click on the Calculate the lift against

![](/files/-MZyCZY1tXxElE0jNEeM)

* From the dropdown select the behavior against which you wish to calculate the lift

![](/files/-MZyHvGTsHY_WrES5l5S)

* Then based on the selected behavior, the lift will be calculated for all the goal events in the experience.&#x20;

{% hint style="info" %}
Lift is calculated only at the behavior level
{% endhint %}

#### Goal level property insights

You can get the various visitor's properties when the goal event was triggered. For example, the total number of visitors from the specific city who triggered the goal event under a personalized behavior. To view the property level insights

* Click on property insights of the respective behavior which you wish to see

![](/files/-MZyD2-NFEN7033USmuv)

* You can also click on property insights of the respective rule which you wish to see

![](/files/-MZyEE4n98cRP948lHOb)

* From the dropdown select the event for which you wish to see the insights

![](/files/-MZyDef0L9MpkiYSZZES)


# Experience Insights

The insights page provides various information about the behavior and rules of an experience

![](/files/-M_-B9xd6jiCOMDdHwPW)

* **Behavior:** It consists of the behavior names and rules under the specific behavior for which the goal event is triggered
* **Sessions:**&#x20;
  * Total: Total number of sessions under the personalized/default behavior
  * Unique: Total number of sessions under the personalized/default behavior from the unique visitors.
* **Goals:**
  * Total: Total number of times goal event is triggered(Page view/Click) under the personalized/default behavior
  * Unique: Total number of times the goal event is triggered(Page view/Click) under the personalized/default behavior from the unique visitors.

{% hint style="info" %}
Atleast one goal event is enough to increment this goal count incase of multiple goal events
{% endhint %}

* **Conversions:** It gives the percentage of the unique visitors who experienced the personalization and triggered the goal event
* **Lift:** It gives the percentage of the personalized behavior change when compared with the different behaviors. By default we will be comparing with the default behavior(Controlled version of the website)
* **Stat sig:** It indicates the confidence that the goal triggered is reliable and not due to chance. By default, we compare the statistical significance with the default behavior.&#x20;
* **Session duration:** Average amount of time the visitor stays at your website after seeing the personalized behavior
* **Traffic stats:** It displays the graph for the respective behavior and rule
* **Property insights:** It consists of various visitor's properties when the goal event was triggered. For example, the total number of visitors from the specific city who triggered the goal event under a personalized behavior/default behavior

#### Traffic Stats :

By default the data is displayed for the last 7 days. You can also select different days or select the custom date range.

![](/files/-M_0CRTHK6gKcvMsCNL-)

When you click on custom you need to select the From and To dates

![](/files/-M_0DLpmi98k6Q4ZdEye)

{% hint style="info" %}
FROM date cannot be greater than TO date

FROM date cannot exceed from the last 3months&#x20;

TO date cannot exceed from the current date
{% endhint %}

Click on traffic stats graph icon corresponding to a behavior to know how the respective behavior is performing or Click on traffic stats graph icon corresponding to a rule to know how the respective rule is performing

![](/files/-M_-NnwJpCX2mMhUwWdv)

At the bottom of the page you can observe the traffic based graph for different parameters such as UTM, Geography, Technology and Referrer. By default, utm source graph is displayed.

From the dropdown you can select top 10 or last 10 or all options. By default top 10 values are displayed in the graph .For example: If you want to know the traffic from top 10 city names from where the visitor visited our website then, select top 10 option from the dropdown

![](/files/-M_-ctxbmEsmbr37eB5H)

If you want to know the cumulative values for the traffic based on top 10 city names then enable the cumulative option

![](/files/-M_-e5xQU5AZqf2fTQNW)

Select Last 10 option from the dropdown in order to see the last 10 values in the graph. For example: If you want to know the traffic from the last 10 device types through which the visitor visited our website then, select last 10 option from the dropdown

![](/files/-M_-hDUjJVui0EpmmnJy)

If you want to know the cumulative values for the traffic based on last 10 device types then enable the cumulative option

![](/files/-M_-hvvJkj1eqr8T8ikG)

Select All option from the dropdown. For example: If you to know the traffic, based on all the device types then select All option. A table consisting of total number of sessions happened through different device types is displayed.

![](/files/-M_-nnFXXf8Qyp4_fZKB)

Click on graph icon under the daywise count column. Daywise summary graph is displayed for the specific selected attribute. By default 7 days graph is displayed.

![](/files/-M_-pBbAT-SuNn4Tk8qP)

For example: If you want to know the daywise summary graph for the specific device type like desktop. Click on the graph icon for the desktop device and correspondingly the graph is displayed

![](/files/-M_-qOBJxkq48Tu9md6F)

#### Calculate the lift against

By default, the lift will be calculated against the default behavior. If you wish to calculate the lift against different personalized behavior then

* Click on the Calculate the lift against

![](/files/-M_07iCAluUmVQANfeWc)

* From the dropdown select the behavior against which you wish to calculate the lift

![](/files/-M_08p7knu2fdlON-zLt)

* Then based on the selected behavior, the lift will be calculated for all the goal events in the experience.

{% hint style="info" %}
Lift is calculated only at the behavior level
{% endhint %}

#### Goal level property insights

You can get the various visitor's properties when the goal event was triggered. For example, the total number of visitors from the specific device type who triggered the goal event under a personalized behavior. To view the property level insights

* Click on property insights of the respective behavior&#x20;

![](/files/-M_0GT6OqB5a2hyaHnKG)

* You can also click on property insights of the respective rule&#x20;

![](/files/-M_0HG5J2zWLYxZYIKKy)

* From the dropdown select the event for which you wish to see the insights

![](/files/-M_0I1WywxwAdA-aJNal)


# Experience Settings

The settings page allows you to edit/configure various details of an experience.

#### Name and Description

You can update the name and description of an experience by entering the required data in the name and description field. Then click on the Update button.

![](/files/-MUnZmvJ9-fSjyFIdc6U)

#### Priority

Priority is a numerical value and it is used to determine the priority of an experience. For example, if you have changed the background image in two of the experiences, then the experience with higher priority will serve the background image for the website. The lower value has the lowest priority and the higher value has higher priority. If you do not give any value then by default the priority value will be set to 1.

![](/files/-MUn_-kh9VNZb_hEyYWT)

#### Journey Settings

* If you want to understand the journey of the visitors who are falling under this experience, then track the experience

![](/files/-MUn_BTMhe5HgpmPjJX8)

* Under journey settings, you can configure whether you want to track all the events(Page view and clicks)

![](/files/-MUn_KqwV6vM4jFLIdze)

* &#x20;Under journey settings, you can configure whether you want to track only the selected events.

![](/files/-MUnbdrJfxQO4u6QXA6B)


# Experience Dashboard

The experience dashboard page provides various information about experiences, such as :

### Name

A meaningful name of your experience will allow you to easily locate it in the dashboard.

### Priority

Provide the priority information of each experience you have created. Priority is a numerical value and it is used to determine the priority of an experience. The lower value has the lowest priority and the higher value has higher priority.&#x20;

### Behaviors

The Behaviors column in the dashboard gives information about the total number of behaviors present in an experience.

### Pages

The Pages column displays the total number of pages present in an experience.

### Power Switch

Turn on the power switch to make the experience live.

### Goals

If you click on goals button then you will be redirected to the respective goals page

![](/files/-MUoSSX1mWmcw6HrTPc4)

### Actions

Under the actions column you can perform various actions such as

#### Delete

In the Actions column, you can delete an experience by clicking on the delete option from the dropdown. Once you click on the delete icon a confirmation pop up window appears to confirm your delete action.

![](/files/-MUoY0rhraxmIkt569G-)

#### Edit

You can also edit the experience name by clicking on the edit option from the dropdown.&#x20;

![](/files/-MUoYRNiiTzOd8mtmBXc)

In the popup window you can change the experience name as per your requirement.

![](/files/-MUoYhEcWrFp4N5-e7Mv)

#### Clone

You can also clone an experience(Create duplicate experience) by clicking on the Make a clone option from the dropdown.&#x20;

![](/files/-MUoZe810aYegWO0eFl-)

Give an experience name. Make sure that the experience name should not match with an existing experience name.&#x20;

![](/files/-MUo_QoHv0Alo2AG8U0T)


# Experience FAQs

## Can I create two experiences with the same priority?

Yes, you can create two experiences with the same priority. In this case, the experience which is created recently will have the highest priority.

## What if I make an experience trackable after few days?

CustomFit starts tracking the events under Journey Explorer only after the experience is made trackable.

## I am unable to see the changes made to the website in the preview mode

There might be multiple reasons why you might not be able to see the changes

1. Make sure that you have installed the CustomFit snippet on your website
2. Check whether the browser is blocking any tab openings. If yes, then allow CustomFit to open the preview mode in the new tab.


# Overview

CustomFit visual editor lets you edit different behaviors of your website quickly with zero code changes. **For example**, if you wish to edit the Marketing behavior then click on the **Open Visual Editor** button

![](/files/-M_t8hUEy51iDaMqPf2B)

If the experience has multiple pages then select the page which you wish to edit

![](/files/-M_t8p9wGNsx7yV85QuV)

The CustomFit visitor editor has four components:

1. **Editor Page** : A copy of the website page which you wish to edit or personalize
2. **App bar** : A toolbar that appears at the top of visual editor interface
3. **Editor Palette** : It allows to edit the various properties of an element
4. **Toolbar** : It also allows to edit the various properties of an element


# App Bar

The app bar consists of following features

![](/files/-M_yTXnQrafmcmDmP_Ji)

* Breadcrumbs
* Undo
* Redo
* Popups
* Preview
* Tutor
* Abort
* Finalize
* Finalize & Exit

#### Breadcrumbs

When you click on any element in the web page then the visual editor will detect the display path(Breadcrumbs) of your selection. It also allows you to navigate to the parent element of the selected element.&#x20;

![](/files/-M_yCyb74Bcastu1XrA1)

#### Undo

If you have done any changes to an element and want to undo the changes then, you can do it by clicking on Undo in the app bar.

![](/files/-M_yBwnrsdNtiKaIadDz)

#### Redo

It's the reverse of undo function. Restore the changes that were previously undone

![](/files/-M_xtIAJQjv93JnMi5qu)

#### Popups

If you have added any popups to the webpage then by default all the popups will be hidden. You can view the popups present on the webpage by clicking on the Popups button present in the app bar. By once again clicking on the Popups button all the popups will be hidden.

![](/files/-M_xuKsTFennjd9Q3x69)

#### Preview

Once you're done editing or personalizing the web page, you can preview how the webpage looks like to make sure that the changes are as expected. In the preview mode, you can also send the link to your team members if you need to get any approvals or suggestions.&#x20;

![](/files/-M_yNLU8PDrXrITEUpg1)

The preview also comes into handy when you want to close inbuilt popups or chatbots.&#x20;

#### Tutor

If you are into the visual editor interface for the first time then clicking on the Tutor button in the app bar will display the video which will help you in getting an overview of the CustomFit visual editor.

![](/files/-M_yFTvl_HP0pvNkeUoj)

#### Abort

The abort button discards all the changes made to the webpage and takes you back to the experience targeting page.

![](/files/-M_xuPyLFgpMjGMJkiYn)

#### Finalize

Once you are done editing or personalizing certain elements of your webpage and want to make sure that the changes are not lost then, click on finalize button. Clicking on finalize button will save all your changes but still present in the visual editor interface.

![](/files/-M_yH23J-YvMH2nQ3WoB)

#### Finalize & Exit

Once you are done editing or personalize your webpage then click on Finalize & Exit button. This will save all your changes and takes you back to the experience targeting page

![](/files/-M_yHEcDQFAbKrFCJXNN)


# Editor Palette

The editor palette appears whenever you click on any HTML element, like a text element or an image. The editor palette allows editing the selected element.&#x20;

### Changing the Text

Using CustomFit visual editor, you will be able to change any text in the webpage without any prior coding knowledge. To edit the text&#x20;

* Click on any text element on the web page. In the editor palette, you can see the text field with prefilled text. Modify the text based on your requirement
* Click on the **Save** button

![](/files/-M_tUIp9Z4SgzR_omjsB)

### Changing the Typography of the Text

If you wish to change the typography of the text element then you can do it in the editor palette. In the Typography section, you can edit the following styles

* **Font Size**: You can change the font size

![](/files/-M_twy7Tx5g6_GBM3w9t)

* **Font Style**: You can change the font style(Italics, bold, etc)

![](/files/-M_twVTM5DL_FbFm7sv1)

* **Font Weight**: You can change the boldness of the text

![](/files/-M_uUyOENmQneJQTcLAJ)

* **Font Family**: You can also change the font family

![](/files/-M_txy43YYU4tCZjQ7Gv)

When you select any text element then all the above values will be pre-filled with the current value.&#x20;

### Changing the Image

If you wish to change any image on the webpage then click on the image which you wish to change. Then in the editor palette, you can see the **Image Source** field. This field is visible if the clicked element is of type image, if it is of any other type then you won't see the Image Source field.&#x20;

![](/files/-M_tzGrEQi2Y_Vfta0KO)

In the Image Source field either enter the image URL or upload it from your local folder.&#x20;

![](/files/-M_tDX6OFmwE2mvonxcX)

Click on **Save** button to see the image being replaced in the visual editor.

![](/files/-M_tzgo49IlpcpfBI7J4)

### Changing the Background Image

If you wish to change/apply any background image in the website then click on the element to which you wish to change and in the editor palette you can see the **Background Image URL** field.

![](/files/-M_u-BKoDcbFHXEyBZ06)

In the Background Image URL field either enter the image URL or upload it from your local folder.&#x20;

![](/files/-M_tDX6OFmwE2mvonxcX)

Click on the **Save** button to see the image being replaced in the visual editor.

![](/files/-M_uXC9DNpbsPo1RAYrj)

### Changing the Dimension

If you wish to change the dimension of any element then click on the element which you wish to change and in the editor palette you can see the **Dimensions** field.

![](/files/-M_u3nyTOURwqYJYJ4bM)

Change the dimensions based on your requirement.

Click on the **Save** button to see the updated dimensions being applied to the element.

![](/files/-M_uYK1oCmEIp0Pz3GDa)

### Removing an Element

If you wish to remove an element from a webpage then click on the element and in the editor palette you can see the **Remove** option under the Visibility section.�

Click on the **Remove** option.

![](/files/-M_u5_1TjZCaT_2vSqg5)

Click on the **Save** button

![](/files/-M_uDyJlQM-5aPBB-tzV)

In the visual editor you can see the removed element in the blur.&#x20;

![](/files/-M_uZ43_iUuFPIr-Tk2S)

And again if you want to add the removed element then click on the element and unselect the **Remove** option.

### Hide/Show

The hide option in the editor palette allows you to hide/show any element. Click on the element which you wish to hide. Click on the **Hide** option in the editor palette under the Visibility section.

![](/files/-M_uQL6uspZaVI_IMhw6)

Click on the **Save** button.&#x20;

![](/files/-M_uQevx_Xmf2MfXDZbY)

In the visual editor, you can see the hidden element in the blur.&#x20;

![](/files/-M_uZ43_iUuFPIr-Tk2S)

And again if you want to show the hidden element then click on the element and unselect the **Hide** option.

### Changing the URL

If you have any element(button) with an URL and if you wish to can change the URL then you can do it through the editor palette. When you click on the element then in the editor palette you can see the **Link to(href)** field.

![](/files/-M_uRg1geU5O2ul1Hlb9)

Change the URL as per your requirement and click on the **Save** button.

![](/files/-M_uZqW05VNgUNeMzQaw)

It also provides you an option to configure whether the URL has to be opened on the same tab or in the new tab.&#x20;

### Applying Border Radius

If there are elements such as buttons or images and if you wish to have a rounded border for it. Then you can achieve it by clicking on it and in the editor palette, you can see the **Border Radius** field.

![](/files/-M_uRyF45G_KXBBCGdxA)

Provide the required border-radius and click on the **Save** button.&#x20;

![](/files/-M_u_CSJyM_ERi8BgYAO)

In the visual editor interface, you can see the element with the rounded border.

![](/files/-M_u_wlzUT-i5XVLg8aG)

### Changing the CSS Classes

If you wish to update the CSS classes of any element then you achieve it through the **CSS Classes** field in the editor palette. Click on the element. Change the required CSS Classes and click on the **Save** button.

![](/files/-M_u_bHJ6v-TX8gV19cr)

### Reset

If you have done multiple changes to an element and wish to reset the element to its default values then click on the Reset button in the editor palette.

### Onclick Execute JavaScript

* Select the element on which you want to execute JS
* From the editor palette under the action section, you will find an Onclick option

![](/files/191qMnG8G2hdtb1I9u9V)

* From the dropdown select the Execute JS option

![](/files/5m9DahSksfVPMKOqzCOZ)

* Copy and paste the JS code and click on Save

![](/files/r34F6Ls5KdiK3A5UedqQ)

### Onload Execute JavaScript

* Select the element on which you want to execute JS
* From the editor palette under the action section, you will find an Onload option

![](/files/1Onr3AJnWTmxKESBPWJx)

* From the dropdown select the Execute JS option

![](/files/jrsDVDK5How6mkzDK4YG)

* Copy and paste the JS code and click on Save

![](/files/vUE2t4CTSeed6KqJXKks)


# Toolbar

The toolbar allows you to edit various properties(Text, Image, Color, etc.) of the selected element.&#x20;

### Edit Text

You can edit the text of any element by either

* Double click on the element and then edit the text

![](/files/-MacaURWlkKKbSiB3JHB)

* Click on an element that you wish to edit and then select the **Edit** option&#x20;

![](/files/-Macb40WQbTKtCDX5HzL)

**Hotkey** to enable Edit option: Click on E

### Guides

It allows you to verify the alignments and measure the distances between two elements. To check the alignments select the **Guide** option and move the mouse cursor on an element for which you wish to see the alignments

![](/files/-Macc-UjzoQuKGPsoLnY)

To check the measurements

* **Click** on an element from which you wish to see the measurement
* Select the **Guide** option
* Move the mouse cursor on any element then you can see the measurement wrt the clicked element

![](/files/-Maccv2wmTjama7U4HSv)

**Hotkey** to enable Guide option: Click on G

### Margin

It allows you to add(increase) or subtract(reduce) outer space from any or all sides of the selected element. To edit the margin

* **Click** on an element for which you wish to edit the margin
* Select the **Margin** option
* To **add** the margin just Click on the **Left**, **Right**, **Bottom** & **Top** arrow keys to add the margin respectively. **For example**, if you click on the Left arrow key then the margin will be increased at the left side of an element

![](/files/-MacnF003rED1Glidg47)

* To **subtract** the margin press **Alt** and click on the **Left**, **Right**, **Bottom** & **Top** arrow keys to subtract the margin respectively. **For example**, if you click on the Top arrow key then the margin will be reduced from the top of an element

![](/files/-MacoIV41AYtiV94ZoOw)

**Hotkey** to enable Margin option: Click on M

### Padding

It allows you to add(increase) or subtract(reduce) inner space from any or all sides of the selected element. To edit the padding

* **Click** on an element for which you wish to edit the padding
* Select the **Padding** option
* To **add** the padding just click on the **Left**, **Right**, **Down** & **Up** arrow keys to add the padding respectively. **For example**, if you click on the Left arrow key then the padding will be increased at the left side of an element

![](/files/-Macoq-2ufLJrrWfrvqF)

* To **subtract** the padding press **Alt** and click on the **Left**, **Right**, **Down** & **Up** arrow keys to subtract the padding respectively. **For example**, if you click on the Top arrow key then the padding will be reduced from the top of an element

![](/files/-Macr79WxA9G3FDDWYV7)

**Hotkey** to enable Padding option: Click on P

### Font Styles

This option allows you to edit the various font styles. To edit the font size

* **Click** on an element for which you wish to increase or decrease the font size
* Select the **Font** option
* Click on the **Up** arrow button to increase the font size
* Click on the **Down** arrow button to decrease the font size

![](/files/-Macw7pzhZGAtKqd1TAU)

To change the font alignment

* **Click** on an element for which you wish to change the alignment
* Select the **Font** option
* Click on the **Left** arrow button to make the font left aligned
* Click on the **Right** arrow button to make the font right-aligned

![](/files/-MacwoihcGBLRo6IsqyB)

To change the line space

* **Click** on an element for which you wish to change the line spacing
* Select the **Font** option
* Press **Shift** and click on the **Up** arrow button to increase the line spacing
* Press **Shift** and click on the **Bottom** arrow button to decrease the line spacing

![](/files/-MacxL7_hGV7bC756Etj)

To change the letter space

* **Click** on an element for which you wish to change the letter spacing
* Select the **Font** option
* Press **Shift** and click on the **Left** arrow button to decrease the letter spacing
* Press **Shift** and click on the **Right** arrow button to increase the letter spacing

![](/files/-MacydoJ5JLOd9q7ZSip)

To change the font-weight(Boldness)

* **Click** on an element for which you wish to change the font-weight
* Select the **Font** option
* Press **Ctrl** and click on the **Up** arrow button to increase the font-weight
* Press **Ctrl** and click on the **Bottom** arrow button to decrease the font-weight

![](/files/-MaczL3VDTA1PMRBzWm1)

**Hotkey** to enable Font Styles option: Click on F


# Popups

&#x20;CustomFit allows you to add banners & popups on your website with zero code. You can have popup content personalized based on the audience it is targeted at. You can add a new popup on the webpage if you are in the CustomFit visual editor.

1. Clicking on the + icon in the visual editor
2. Select the pop-ups tab if you want to add a popup. Or select the inline tab if you want to add an inline element/banner
3. In each tab, you can find a different set of popups

![](/files/-M_BgmggSNbjB2b1Gx5l)

For example: If you wish to add an email popup then select the popup which contains an email field.&#x20;

Once you have added a popup then you can see 4 buttons on top of the popup.

![](/files/-M_Bhe2KXpd7AVXW5d_f)

1. **Convert to Template:** If you have made some changes to the template and want to reuse the template then you can save it and reuse it. To save the template click on the *Convert to Template* button
2. **Settings:** The settings button provides you with various options to configure a popup
3. **Hide:** Once you are done personalizing your popup and want to continue with webpage personalization then click on the hide button to hide the popup
4. **Delete:** If you want to delete the popup then click on the delete button

### **Popup Settings**

The settings option allows you to configure your popup based on various requirements.&#x20;

#### **Visibility**

This option lets you configure on which device the popup should be visible

* Desktop and Mobile: If you want the popup to be visible on both desktop and mobile then select the Desktop and Mobile option
* Desktop only: If you want the popup to be visible only on the desktop then select the Desktop only option
* Mobile only: If you want the popup to be visible only on the mobile then select the Mobile only option

![](/files/-M_BhuV6KhdkP-oTBioH)

{% hint style="info" %}
By default, the Visible option will be set to Desktop and Mobile
{% endhint %}

#### Display

This option lets you configure when the popup should be displayed

* On Entry: If you want the popup to be displayed as soon as the visitor lands on the webpage then select the *On Entry* option

{% embed url="<https://youtu.be/5i6Nqy66zl8>" %}

* After X Seconds: If you want the popup to be displayed after X seconds of the page load then select the *After X Seconds* option. By default, the value will be set to 20 seconds

{% embed url="<https://youtu.be/KFZ6F_Sz4Dc>" %}

* Exit Intent: If you want the popup to be displayed as soon as the visitor tries to close the webpage then select the *Exit Intent* option. There is an additional option that you can configure specifying the popup should be displayed after X seconds of page load and then trying the close the webpage. If the visitor tries to close the popup within X seconds then the popup will not be displayed. By default, the value will be set to 2 seconds

{% embed url="<https://youtu.be/mQCKWaNXuwg>" %}

* Scroll %: If you want the popup to be displayed after the visitor has scrolled X percentage on the webpage then select the *Scroll %* option. By default, the value will be set to 20%

{% embed url="<https://youtu.be/1dT7G9mE874>" %}

{% hint style="info" %}
By default, the Display option will be set as On Entry
{% endhint %}

**Close settings**

This option allows you to configure the behavior of a popup once it is closed

* Show on page refresh: As soon as the visitor clicks on the close(X) icon then the popup will be dismissed for the visitor. If you have selected the *Show on page refresh* option then the popup will be again visible if the visitor refreshes the page
* Show on next session: As soon as the visitor clicks on the close(X) icon then the popup will be dismissed for the visitor. If you have selected the *Show on next session* option then the popup will be again visible for the visitor in the next session
* Show after X duration: As soon as the visitor clicks on the close(X) icon then the popup will be dismissed for the visitor. If you have selected the *Show after X duration* option then the popup will be again visible for the visitor after X seconds. If the visitor refreshes the page or opens a new session within X seconds then the popup will not be visible. By default, the value will be set to 86400 seconds i.e., 1 day

![](/files/-M_BiREFoZFQLXCoP195)

{% hint style="info" %}
By default, the Close settings will be set to *Show on next session* option
{% endhint %}

#### **Form submit settings**

This option allows you to configure what should be the next steps after the form has been submitted.

* Invoke API: If you wish to invoke your custom API as soon as the visitor submits the form, select the Invoke API option. As the visitor fills the email id and clicks on the button then CustomFit will invoke the configured API
* Create HubSpot contact: If you are using Hubspot as your CRM then CustomFit allows you to create Hubspot contact as soon as the visitor submits the form. For that first, you need to [integrate Hubspot](https://doc.customfit.ai/integrations/hubspot) with CustomFit and select *Create Hubspot contact* option under the Form settings

{% hint style="info" %}
If Hubspot has not been integrated and if you have selected *Create HubSpot contact* then the form submission will fail
{% endhint %}

* Create Salesforce lead: If you are using Salesforce as your CRM then CustomFit allows you to create a Salesforce lead as soon as the visitor submits the form. For that first, you need to [integrate Salesforce](https://doc.customfit.ai/integrations/salesforce) with CustomFit and select *Create Salesforce lead* option under the Form settings

{% hint style="info" %}
If Salesforce has not been integrated and if you have selected *Create Salesforce lead* then the form submission will fail
{% endhint %}

* Add to CustomFit email list: If you do not have Hubspot/Salesforce as your CRM and also do not have any internal API to be invoked then you can select *Add to CustomFit email list* option. This option allows you to store the list of email ids locally on the CustomFit side. CustomFit allows you to select the email list in which you wish to save the email id\\

{% embed url="<https://youtu.be/jEAJMFTVxVk>" %}

{% hint style="info" %}
By default, the Form submit settings will be set to Invoke API option
{% endhint %}

#### **Success message**

If the form submission is successful then CustomFit allows you to have your success message. By default, the success message is *We got the info*. The success message will be displayed over the form button

{% embed url="<https://youtu.be/0odYcP8tliE>" %}

#### **Failure message:**&#x20;

If the form submission fails then CustomFit allows you to have your failure message. By default, the failure message is *Oops! something went wrong, please try again*. The failure message will be displayed over the form button

{% embed url="<https://youtu.be/Ih18Ud_EsN8>" %}

#### **After submit open Url**

After the visitor has successfully submitted the form, you have an option of whether the visitor needs to be redirected to a new page or just close the popup. If the *After submit open URL* field is empty then the popup just closes. If the *After submit open URL* field has any value then the visitor will be redirected

{% embed url="<https://youtu.be/eOppgtoBMHE>" %}

### **Example**

Below steps will help you in adding a popup and editing the popup based on your requirements

#### Edit the text

1. Click on the text that you wish to edit&#x20;
2. Change the text in the editor palette
3. Once you make the changes click on save to apply the necessary changes

![](/files/-M_KVhKt2V-ut5DZHylp)

#### Changing the image

1. Click on the image
2. Click on the browse icon in the editor palette and change the image based on your requirement
3. Click on save

![](/files/-M_KWGCJ-ALF2EnEvYIH)

#### Changing the CTA

1. Click on the CTA
2. From the editor palette, you can change the text, dimensions, radius, etc. of the CTA. You can also change *href* of the CTA
3. Click on save

![](/files/-M_KZJA6SCm0jwlS54Ud)

#### Change the background color of the popup

1. Click on the image&#x20;
2. Click on parent then the entire template of the popup gets selected&#x20;
3. Click on the fill color tool and select the color of your choice&#x20;
4. Click on save

![](/files/-M_KegkHjYvYxACEh1nK)

To preview your changes click on the preview button to check that your edits looks as you intended.

![](/files/-M_KumEnhGWz3gER_k57)

{% hint style="info" %}
Always the Preview Link is copied up to the last finalized changes
{% endhint %}

{% hint style="info" %}
All the CustomFit popups are responsive by default. We suggest you check how the popup looks like in both mobile and desktop mode before making it live.
{% endhint %}


# Triggers

### Overview

A **trigger** defines the exact moment an experience is activated for a visitor.

While targeting determines **who** should see an experience, a trigger determines **when** it should appear. It controls the timing and behavioral condition required before the experience is displayed or executed.

Triggers allow you to align your experiences with real user behavior. Instead of showing content immediately or randomly, you can wait for meaningful actions such as time spent on a page, scrolling, clicking a button, or preparing to leave. This ensures that experiences feel contextual, relevant, and less disruptive.

Using triggers effectively helps you:

* Deliver messages at the most impactful moment
* Improve engagement and conversion rates
* Avoid interrupting critical user flows
* Personalize interactions based on behavior
* Create more strategic and intentional user journeys

Each experience has its own trigger configuration, which can be managed from the **Settings** tab. Selecting the right trigger is essential for balancing visibility, timing, and user experience.

In short:

* **Targeting = Who sees it**
* **Trigger = When they see it**

Together, they give you full control over how and when your experiences are delivered.

### Where to Find Triggers

To configure triggers for an experience in CustomFit.ai, follow these steps:

1. Log in to your **CustomFit.ai Dashboard**.
2. From the left-hand sidebar, click on **Experience Engine**.
3. Select the experience in which you want to configure the trigger.
4. Navigate to the **Settings** tab within the selected experience.
5. Locate the **Trigger** section and choose the desired trigger type.
6. Configure the required trigger conditions and save your changes.

<figure><img src="/files/mNHJ9LiROiyaKb7QYSEI" alt=""><figcaption></figcaption></figure>

### Trigger Types

#### 1. Default

**Description:**\
Triggers the experience as soon as possible after the page begins loading.

**Use case:**\
Best for experiences that should appear immediately, such as announcements or mandatory messages.

**Notes:**

* Executes early in the page lifecycle.
* May display before all page elements are fully rendered.

#### 2. On Load of Page

**Description:**\
Triggers the experience when the DOM is fully loaded and ready.

**Use case:**\
Ideal when the experience depends on page elements being available in the DOM.

**Notes:**

* Waits for the page structure to be ready.
* More stable for element-dependent interactions than the Default trigger.

#### 3. On Click of an Element

**Description:**\
Triggers when the visitor clicks on a specified element.

**Configuration Required:**

* You must define the target element (e.g., CSS selector, element ID, or class).

**Use case:**

* Button clicks
* Navigation links
* Call-to-action interactions

**Example:**\
Trigger an experience when a user clicks the “Start Free Trial” button.

#### 4. Time Spent on a Page

**Description:**\
Triggers after the visitor has spent a specified amount of time on the page.

**Configuration Required:**

* Time in milliseconds (e.g., `10000` = 10 seconds)

**Use case:**

* Delayed popups
* Engagement prompts
* Timed promotions

**Example:**\
Show a subscription offer after 15 seconds on the page.

#### 5. Scroll Percentage

**Description:**\
Triggers after the visitor has scrolled a specified percentage of the page.

**Configuration Required:**

* Scroll percentage (e.g., 50%)

**Use case:**

* Content engagement prompts
* Mid-article offers
* Progressive messaging

**Example:**\
Display a related content recommendation after a visitor scrolls 70% of the article.

#### 6. Exit Intent

**Description:**\
Triggers when the visitor shows intent to leave the page.

**How it works:**\
Detects cursor movement toward the browser’s top bar or tab area (desktop devices).

**Use case:**

* Abandoned cart offers
* Last-chance promotions
* Feedback surveys

**Notes:**

* Primarily effective on desktop devices.
* May not function consistently on mobile.

#### 7. Custom

**Description:**\
Triggers based on custom conditions defined by you.

**Invocation (How to fire the trigger):**

After defining your custom logic or rule conditions, call the function below to invoke the trigger:

* **Function:** `executeTrigger();`
* **Purpose:** Executes your custom trigger logic and fires the experience when conditions are met.

```js
// Some code// ...your custom logic here

executeTrigger();
```

**Use case:**

* Complex targeting conditions
* Combined behavioral triggers
* Advanced segmentation rules

**Example: Invoke trigger after a delay**

Use `executeTrigger();` to invoke your custom trigger once your logic is ready. For example, to trigger the experience after **5 seconds**:

```js
setTimeout(function () {
  // Call this method to invoke the custom trigger
  executeTrigger();
}, 5000);

```


# Sitewide JS

**Sitewide JS** allows you to run custom JavaScript across every page where the CustomFit.ai code snippet is installed. It acts as a centralized scripting layer that applies globally, rather than being tied to a specific experience.

The script executes **before any experience changes are applied**, ensuring that your global logic runs first. This makes it especially useful for preparing data, setting shared conditions, defining reusable functionality, or establishing variables that experiences can depend on.

Unlike experience-level scripts that are scoped to individual campaigns, Sitewide JS applies consistently across your website wherever CustomFit.ai is active. It helps maintain uniform behavior, reduces duplication, and gives you greater control over how your personalization and experimentation framework operates at a foundational level.

Sitewide JS runs **only on live experiences**, meaning it will not execute while experiences are powered off.

### Where to Find Sitewide JS

To configure Sitewide JS in CustomFit.ai, follow these steps:

1. Log in to your **CustomFit.ai Dashboard**.
2. From the left-hand sidebar, click on **Settings** and then select **CustomFit Setup**.
3. Inside the setup section, navigate to the **Sitewide JS** tab.
4. Enter your JavaScript code in the provided editor.
5. Save and publish your changes to apply them to live experiences.

<figure><img src="/files/DWAiFKqpfPM5a5mGZMzg" alt=""><figcaption></figcaption></figure>

#### Important Considerations

* Changes apply globally once published.
* Scripts execute only when experiences are live.
* Since it runs before experiences, avoid conflicts with later modifications.
* Keep logic optimized to prevent unnecessary overhead across pages.


# ABM

Create 1-1 or 1-n personalized URL links

If you are driving the traffic to your website through outbound emails, social media campaigns, push notifications, etc. then you can give them a highly personalized experience. The ABM section will help you to add personalization parameters( such as user properties & UTM params) and generate 1-1 or 1-n personalized links.&#x20;

For example, when you send a marketing/sales mail to your prospect, in most cases you know the prospect's first name, last name, company, designation, use-case to highlight, etc. With the help of the CustomFit ABM tool, you can embed all the information and generate a personalized link.

### Generating 1-n personalized link

To generate 1-n personalized links follow the below steps

1. Provide the Landing Page URL for which you would like to generate the link. For example, if you wish the visitor to land on a specific product page then provide the particular page URL
2. If you wish to add any custom property then provide the property name and value. For example, if you are generating a link for startups then the property name can be industry and the value should be startups
3. You can also add UTM parameters as part of the personalized link. For example, if you are running a Google campaign then enter google under the UTM Source
   * UTM Source:  This helps you to track the source from which the traffic is driven. For example, LinkedIn, Facebook, etc.
   * UTM Medium: This helps you to know the channel which is driving more traffic to your website. For example, Social, CPC, etc.&#x20;
   * UTM Campaign:  This indicates the name of the campaign which you are running. For example, Marketing Campaigns, Free-trial-demo Campaigns, etc.
   * UTM Term:  This helps you to track the specific keywords for the running campaign. For example, logo, link, etc.
   * UTM Content: This helps you to differentiate the ads within a campaign. For example, vid-ad, etc.

![](/files/cPOM8WPu1KgVBbpgpuUD)

Copy the generated URL and share it with your team or add it to any of your promotional campaigns(Ads, posts, etc.)&#x20;

![](/files/GklL0Dxlt4PY057r1nCw)

The generated URL has all the parameters attached to it as query parameters. And If you wish to shorten the URL and hide the parameters, then click on Generate tiny URL.

![](/files/jfMGkoIXRpkymYzDQ1KA)

### Generating 1-1 personalized links

If you have a CSV file with a list of records and want to generate 1-1 personalized link for each of the records then follow the below steps

* Click on the CSV Upload tab
* Provide the Landing Page URL for which you would like to generate the link
* Upload the CSV file. The first row of the CSV file is considered a property name. You can download the sample CSV file by clicking on the sample.csv

![](/files/fZvrcKVu5lKtqlqurC4E)

* If you wish to add any UTM Parameters to be part of the personalized link then enter the values in the respective fields

![](/files/xj5WYxSuQ5yNViYXTgzk)

* If you want to ignore/remove a few of the columns from the personalized links then from the dropdown unselect the column names which is not necessary
* Click on Generate tiny URL to generate the shortened URL.
* Click on Export to CSV to download the CSV file.

&#x20;

![](/files/oJjw92zX64k8O2IcRwcf)

Below is the video of how to generate 1-1 personalized links

![](/files/bbf9u9OQ0ivs3K3WIIdj)


# Geo Location

Geo targeting allows you to provide a personalized experience for the visitors visiting from a specific geographic location. **For example,** you can provide a different experience who is visiting from INDIA and a different experience who is visiting from the USA.

CustomFit provides different Geo attributes that allow the visitor to target a visitor coming from a very specific geographic location. The different Geo attributes supported by CustomFit are :

* **Continent**
* **Country**
* **Country Code**
* **Region**
* **Region Code**
* **City**
* **Zip code**

CustomFit.ai supports the following different operator types:

| Operator Type                 | Description                                    |
| ----------------------------- | ---------------------------------------------- |
| IS\_ONE\_OF, IS\_NOT\_ONE\_OF | Exact match                                    |
| IS\_SET, IS\_NOT\_SET         | Checks whether the attribute is set or not set |

To write a Geo-based rule

* Click on Add or Add rules

![](/files/-Ma7kxkfyZSsfvV3-Tkm)

* Click on the attribute field

![](/files/-Ma7lUYk-_JbNNNuySbv)

* In the dropdown, you can see the GEO section

![](/files/-Ma7nXNktcA43GgGbFOO)

* Select the required attribute
* Next, set the operator type based on your requirement

![](/files/-Ma7no1TjGlUsFynwf4-)

* From the dropdown select the pre-filled values. And if there is no dropdown then enter the value

![](/files/-Ma7nxvVhmYk3SQIo2CP)

* Then select the behavior which needs to be served

![](/files/-Ma853z3SQLBuc7ROjwb)

#### Rule with a single condition

For example, targeting visitors who are visiting from INDIA. So, the rule will be Country IS\_ONE\_OF INDIA.

![](/files/-Ma85BpGKAa_OEcAosSt)

#### Rule with multiple conditions

For example, targeting visitors who are visiting from INDIA and the device type is Desktop. So, the rule will be Country IS\_ONE\_OF INDIA AND Device IS\_ONE\_OF Desktop.

![](/files/-Ma85MFKxv0taU7L7hVa)

#### Rule with multiple values

For example, targeting visitors who are visiting either from Delhi or Karnataka. So, the rule will be Country IS\_ONE\_OF INDIA AND Region IS\_ONE\_OF Delhi or Karnataka.

![](/files/-Ma85geuNadPNb3xea1H)


# Technology

Based on the visitor's browser's visitor agent CustomFit identifies various technical attributes:

* **Browser**
* **Device Type**
* **Operating System**
* **Screen Width**
* **Screen Height**

CustomFit.ai supports the following different operator types:

| Operator Type                 | Description                                    |
| ----------------------------- | ---------------------------------------------- |
| IS\_ONE\_OF, IS\_NOT\_ONE\_OF | Exact match                                    |
| IS\_SET, IS\_NOT\_SET         | Checks whether the attribute is set or not set |

To write a Technology-based rule

* Click on Add rule

![](/files/-MUqi4iJXISFD7cpnoPL)

* Click on the attribute field

![](/files/-Ma7lUYk-_JbNNNuySbv)

* In the dropdown, you can see the Technology section

![](/files/-Ma87R8UIBGCk937zZ3H)

* Select the required attribute
* Next, set the operator type based on your requirement

![](/files/-Ma87bJ7mAYPeFft0K1X)

* From the dropdown select the pre-filled values. And if there is no dropdown then enter the value

![](/files/-Ma87j55BYCJIT7atLVG)

* Then select which behavior needs to be served

![](/files/-Ma88-AtOLdsOr31i_Ls)

#### Rule with a single condition

For example, targeting visitors who are visiting from Desktop. So, the rule will be Device IS\_ONE\_OF Desktop.

![](/files/-Ma88bXyDwTKXtj_aeUg)

#### Rule with multiple conditions

For example, targeting visitors who are visiting from Desktop and the browser is Chrome. So, the rule will be Device IS\_ONE\_OF Desktop AND Browser IS\_ONE\_OF Chrome.&#x20;

![](/files/-Ma88pELLQ2dmXMl34xp)

#### Rule with multiple values

For example, targeting visitors who are visiting from Desktop and the browser is Chrome or Safari. So, the rule will be Device IS\_ONE\_OF Desktop AND Browser IS\_ONE\_OF Chrome OR Safari.

![](/files/-Ma89vEfhnc8U0Fq3ZAA)


# UTM Parameters

UTM parameter targeting allows you to provide a personalized experience on the website when the visitor lands from specific UTM campaigns. With UTM parameter targetting you can personalize any page on the website, not just the landing page, as CustomFit attaches the UTM parameters to the visitor. **For example,** if a visitor is landing on one of the product pages from a specific UTM campaign then, you can provide a personalized experience on the demo page.

As CustomFit attaches the UTM parameters, you can provide a personalized experience to the visitor when they are returning to the website and do not have UTM parameters in the URL.

#### UTM parameters rule:

To write a UTM parameter rule

* Click on Add rule

![](/files/-MUqi4iJXISFD7cpnoPL)

* Click on the attribute field

![](/files/-Ma7lUYk-_JbNNNuySbv)

* In the dropdown, you can see the UTM section

![](/files/-Ma8AL-133EY8Hliu3lJ)

* Select the required type of UTM parameter
* Next, set the operator type based on your requirement

![](/files/-Ma8AwVLvU3NzzONJC2f)

* Enter the value of the UTM parameter

![](/files/-Ma8B2aBEBYYgoQIiMSv)

* Then select which behavior needs to be served

![](/files/-Ma8BAy3_QVBjOZdaDYi)

CustomFit supports all the five different types of UTM parameters:

1. **Campaign Source**: The source parameter allows you to track from where the traffic is originated from. The parameter is **utm\_source**. The traffic can be from different sources such as Facebook, Google, or the name of an email list. **For example,** you can personalize the experience only for the visitors with **utm\_source=twitter.** Then the rule will be utm\_source I&#x53;*\_*&#x4F;NE\_OF Twitter

![](/files/-Ma8H0csdQR2_cj-BchO)

* **Campaign Medium**: The medium parameter allows you to track what *type* of traffic the visitor originated from – email, social, referral, etc. The parameter is **utm\_medium**. **For example,** you can personalize the experience only for the visitors with **utm\_medium=email.** Then the rule will be utm\_medium I&#x53;*\_*&#x4F;NE\_OF email

![](/files/-Ma8HrCcSDMSnn2d-X4d)

* **Campaign Name**: The name parameter allows you to track how a specific campaign is performing. The parameter is **utm\_campaign**. **For example,** you can personalize the experience only for the visitors with **utm\_campaign= facebook-campaign1.** Then the rule will be utm\_campaign I&#x53;*\_*&#x4F;NE\_OF facebook-campaign1

![](/files/-Ma8IOqWKRlgsCWINAE_)

* **Campaign Content**: The content parameter allows you to track which link was clicked when you have multiple links pointing to the same URL. The parameter is **utm\_content**. **For Example,** you can personalize the experience only for the visitors with **utm\_content=hero-text-signup.** Then the rule will be utm\_content I&#x53;*\_*&#x4F;NE\_OF hero-text-signup

![](/files/-Ma8IlTJmNdvH-MoraLE)

* **Campaign Term**: The term parameter is used for paid search ads to track which term a visitor came from. The parameter is **utm\_term**. **For Example,** you can personalize the experience only for the visitors with  **utm\_term=Quora+Website+personalization.** Then the rule will be utm\_term I&#x53;*\_*&#x4F;NE\_OF Quora+Website+personalization

![](/files/-Ma8LaNHCoDWCdtMaC-i)

CustomFit.ai supports the following different operator types:

| Operator Type                         | Description                                    |
| ------------------------------------- | ---------------------------------------------- |
| IS\_ONE\_OF, IS\_NOT\_ONE\_OF         | Exact match                                    |
| STARTS\_WITH, DOES\_NOT\_STARTS\_WITH | Prefix match                                   |
| ENDS\_WITH, DOES\_NOT\_ENDS\_WITH     | Suffix match                                   |
| CONTAINS, DOES\_NOT\_CONTAINS         | Sub string match                               |
| IS\_SET, IS\_NOT\_SET                 | Checks whether the attribute is set or not set |

#### Rule with multiple conditions

For example, targeting visitors who are visiting from Google source, youtube\_video medium and marketing\_cro campaign

![](/files/-Ma8MgEg3bwNAv6bsE7C)


# Visitor Attributes

CustomFit allows you to target visitors based on various custom attributes such as Designation, Team, and so on. **For example,** if you are running an email campaign for the Marketing team then, you can create a custom attribute as Team. All the custom attributes can be attached to the visitors as query parameters.&#x20;

To write a rule based on custom attributes

* Click on Add rule

![](/files/-MUqi4iJXISFD7cpnoPL)

* Click on the attribute field

![](/files/-Ma7lUYk-_JbNNNuySbv)

* In the dropdown, you can see the Custom Properties section

![](/files/-MUr-E3jQf93NG33ia-V)

* Select the required attribute
* Next, set the operator type based on your requirement

![](/files/-MUr-JYfOjYv2XPRyRPM)

* Enter the value/s

![](/files/-MUr-NCPVehoM2p9ImEv)

* Then select which behavior needs to be served.

![](/files/-MUr-QrriWMEdE2Q7UuP)

CustomFit allows you to create custom attributes of the following types:

* String
* Number
* Boolean

### The supported operation types for string type attributes are

#### IS\_ONE\_OF, IS\_NOT\_ONE\_OF

Use this operation type if you want to match each character from start to end. For example, to target the visitors with the team as Marketing. So, the rule will be Team IS\_ONE\_OF Marketing

![](/files/-Ma8xDAB73wqs1DPtY69)

To target the visitors apart from the Marketing team. So, the rule will be Team IS\_NOT\_ONE\_OF Marketing

![](/files/-Ma90RM9tjra0JhOQWxP)

#### STARTS\_WITH, DOES\_NOT\_STARTS\_WITH

Use this operation to perform the prefix match with the query parameter value. For example, to target the visitors whose first name starts with John. So the rule will be firstname STARTS\_WITH John

![](/files/-Ma91_g_i9P9xIqhXDN7)

To target the visitors whose first name does not starts with John. So, the rule will be firstname DOES\_NOT\_STARTS\_WITH John

![](/files/-Ma92GRZ5zwshfT-fLSf)

#### ENDS\_WITH, DOES\_NOT\_ENDS\_WITH

Use this operation to perform the suffix match with the query parameter value. For example, to target the visitors whose email id ends with *ai* domain. So the rule will be email\_id ENDS\_WITH ai

![](/files/-Ma98fV8mSQRRfjblQSO)

To target the visitors whose email id is not gmail.com. So, the rule will be email\_id DOES\_NOT\_ENDS\_WITH gmail.com

![](/files/-Ma99jOj89TEeAYz51m-)

#### CONTAINS, DOES\_NOT\_CONTAINS

Use this operation to perform the substring match with the query parameter value.

#### IS\_SET, IS\_NOT\_SET

Use this operation to check whether the query parameter value has been set or not. For example, to target the visitors whose designation is known to us. So, the rule will be Designation IS\_SET

![](/files/-Ma9Cqvk4pUDgvZsB1xH)

To target the visitors whose designation is not known to us. So, the rule will be Designation IS\_NOT\_SET

![](/files/-Ma9D_i2c7oh63dzzLIx)

### The supported operation types for number type attributes are

#### IS\_ONE\_OF, IS\_NOT\_ONE\_OF

Use this operation type if you want to target the visitors whose age is 25. So, the rule will be Age IS\_ONE\_OF 25

![](/files/-Ma9Edt_QHkSX_b-wb6Y)

To target the visitors apart from the age 25. So, the rule will be Age IS\_NOT\_ONE\_OF 25

![](/files/-Ma9Eta3NRxWYzkQVH8U)

#### GREATER\_THAN, GREATER\_THAN\_OR\_EQUAL\_TO

Use this operation type if you want to target visitors whose age is greater than 25. So, the rule will be Age GREATER\_THAN 25

![](/files/-Ma9SvSOIQYH4y5WzPEO)

To target visitors whose age is greater than or equal to 25. So, the rule will be Age GREATER\_THAN\_OR\_EQUAL\_TO 25

![](/files/-Ma9TPZMChIzWbs7-2KY)

#### LESS\_THAN, LESS\_THAN\_OR\_EQUAL\_TO

Use this operation type if you want to target visitors whose experience is less than 3 years. So, the rule will be Experience LESS\_THAN 3

![](/files/-Ma9U-tji93Ta4v1-kTe)

To target visitors whose experience is less than or equal to 3 years. So, the rule will be Experience LESS\_THAN\_OR\_EQUAL\_TO 3

![](/files/-Ma9Trs6T7Hvzz1oxXHk)

#### IS\_SET, IS\_NOT\_SET

Use this operation to check whether the query parameter value has been set or not. For example, to target the visitors whose age is known to us. So, the rule will be Age IS\_SET

![](/files/-Ma9UJ1p8v1NyqEJGNUJ)

To target the visitors whose age is not known to us. So, the rule will be Age IS\_NOT\_SET

![](/files/-Ma9UW4uPeK0O_AZ-U3r)

### The supported operation types for boolean type attributes are

#### IS\_ONE\_OF

Use this operation if you want to check whether any of the boolean attributes is set to TRUE or FALSE. For example, to target the visitors who have already requested a demo. Assume that you are using a boolean attribute "demo requested" to keep track of whether the visitor has requested the demo or not. So, the rule will be demo requested IS\_ONE\_OF True

![](/files/-Ma9UlqcXeARY4Z9R-86)

To target the visitors who have not requested a demo. So, the rule will be demo requested IS\_ONE\_OF False

![](/files/-Ma9UvyKZd_-6E7V7GEm)

CustomFit allows you to write a rule by combining the different attribute types. For example, if you want to target visitors whose team is marketing, the experience is 3 years and they have not requested a demo. So the rule will be Team IS\_ONE\_OF Marketing AND Experience GREATER\_THAN\_OR\_EQUAL\_TO 3 And Demo Requested IS\_ONE\_OF False

![](/files/-MUr6Dl5ylL8sdP08UKD)

### Visitor attributes Creation

CustomFit provides two ways to create visitor attributes:

1. Through Dashboard.
2. Through URL. To Create a visitor attribute just add the required attribute as a query parameter in the URL with the prefix cfup. For example, if you want to create a visitor attribute **Team** then the URL should be <https://customfit.ai?cfup\\_team=Marketing>. If you are creating visitor attributes through URL then, the attribute type will be decided based on the attribute value. In the above example, the attribute Team will be of type String.


# Salesforce Attributes

On successful integration of the Salesforce, CustomFit displays 3 different Salesforce categories under which we have the various attributes:

* **Salesforce Leads**
* **Salesforce Contact**
* **Salesforce Account**

All the Salesforce attributes can be attached to the visitors as query parameters. To write a rule based on Salesforce attributes

* Click on Add rules

![](/files/-MXGimwUMDLR4qXhQ-vX)

* Click on the Attribute field

![](/files/-MaCKTk3cx7nRs2ETw_l)

* In the dropdown, you can see the Salesforce Lead section&#x20;

![](/files/-MaCKpS5t_Pn7c58XQmZ)

**If you select String type property then the supported operation types for String type attributes are:**

#### IS\_ONE\_OF, IS\_NOT\_ONE\_OF    &#x20;

Use this operation type if you want to match each character from start to end. For example, to target the visitors with the Company name as CustomFit.ai. So, the rule will be Company IS\_ONE\_OF CustomFit.ai then, serve them B1 behavior.

![](/files/-MaCL-lnUJJ_vbG08s_7)

For example, to target the visitors apart from the CustomFit.ai company. So, the rule will be Company IS\_NOT\_ONE\_OF CustomFit.ai then, serve them B2 behavior

![](/files/-MaCL6ICpnz-nCbh0iyw)

#### STARTS\_WITH, DOES\_NOT\_STARTS\_WITH

Use this operation to perform the prefix match with the query parameter value. For example, to target the visitors whose first name starts with Smith. So the rule will be FirstName STARTS\_WITH Smith then, serve them B1 behavior

![](/files/-MaCLRAyzJcF7QpiVRrb)

For example, to target the visitors whose first name does not starts with Smith. So the rule will be FirstName DOES\_NOT\_STARTS\_WITH Smith then, serve them B2 behavior

![](/files/-MaCLZciBLIUJ9oSx45F)

#### ENDS\_WITH, DOES\_NOT\_ENDS\_WITH

Use this operation to perform the suffix match with the query parameter value. For example, to target the visitors whose Email ends with *ai* domain. So the rule will be Email ENDS\_WITH ai then, serve them B1 behavior

![](/files/-MaCsoR8kggCq7QeyVX2)

For example, to target the visitors whose Email does not ends with *ai* domain. So the rule will be Email DOES\_NOT\_ENDS\_WITH ai then, serve them B2 behavior

![](/files/-MaCszVpAxhRTKnq67dv)

#### CONTAINS, DOES\_NOT\_CONTAINS

Use this operation to perform the substring match with the query parameter value.

For example, to target the visitors whose DATA\_QUALITY\_DESCRIPTION\_\_C contains rating. So the rule will be DATA\_QUALITY\_DESCRIPTION\_\_C CONTAINS rating then, serve them B1 behavior

![](/files/-MaCtKdyXKxk-vZp3LL2)

For example, to target the visitors whose DATA\_QUALITY\_DESCRIPTION\_\_C does not contains rating. So the rule will be DATA\_QUALITY\_DESCRIPTION\_\_C DOES\_NOT\_CONTAINS rating then, serve them B2 behavior

![](/files/-MaCtSgJlmZqJReFIuLm)

#### IS\_SET, IS\_NOT\_SET

Use this operation to check whether the query parameter value has been set or not. For example, to target the visitors whose cleanstatus is known to us. So, the rule will be CleanStatus IS\_SET then, serve them B1 behavior

![](/files/-MaCtdzzm3Bmw0DFbLe1)

For example, to target the visitors whose cleanstatus is not known to us. So, the rule will be CleanStatus IS\_NOT\_SET then, serve them B2 behavior

![](/files/-MaCtw6Fn3RnpoPGzix0)

**If you select Number type property then the supported operation types for Number type attributes are:**

![](/files/-MaCtmR6Jr-LXYUU0FYH)

####

#### IS\_ONE\_OF, IS\_NOT\_ONE\_OF

Use this operation type if you want to target the visitors whose DATA\_QUALITY\_SCORE\_\_C is 1. So, the rule will be DATA\_QUALITY\_SCORE\_\_C IS\_ONE\_OF 1 then, serve them B1 behavior

![](/files/-MatOqNBpj1N9I0093Wo)

For example, if you want to target the visitors whose DATA\_QUALITY\_SCORE\_\_C is not 1. So, the rule will be DATA\_QUALITY\_SCORE\_\_C IS\_NOT\_ONE\_OF 1 then, serve them B2 behavior

![](/files/-MatP8GZBCGEfiHHZ0k5)

#### GREATER\_THAN, GREATER\_THAN\_OR\_EQUAL\_TO

Use this operation type if you want to target visitors whose  DATA\_QUALITY\_SCORE\_\_C is greater than 0. So,  DATA\_QUALITY\_SCORE\_\_C is GREATER\_THAN 0  then, serve them B1 behavior

![](/files/-MatPlVUL43AVvHLvTlr)

For example, if you want to target visitors whose DATA\_QUALITY\_SCORE\_\_C is greater than or equal to 0. So,  DATA\_QUALITY\_SCORE\_\_C is GREATER\_THAN\_OR\_EQUAL\_TO 0  then, serve them B2 behavior

![](/files/-MatPd9bfnmbh0XoJW4I)

#### LESS\_THAN, LESS\_THAN\_OR\_EQUAL\_TO

Use this operation type if you want to target visitors whose DATA\_QUALITY\_SCORE\_\_C  is less than 1. So, the rule will be DATA\_QUALITY\_SCORE\_\_C  LESS\_THAN 1 then, serve them B1 behavior

![](/files/-MatSJj8YzIdFJuvwOo_)

For example, if you want to target visitors whose DATA\_QUALITY\_SCORE\_\_C  is less than or equal to 1 year. So, the rule will be DATA\_QUALITY\_SCORE\_\_C  LESS\_THAN\_OR\_EQUAL\_TO 1 then, serve them B2 behavior

![](/files/-MatS_rLtXSZuuyBrdm-)

#### IS\_SET, IS\_NOT\_SET

Use this operation to check whether the query parameter value has been set or not. For example, to target the visitors whose DATA\_QUALITY\_SCORE\_\_C  is known to us. So, the rule will be DATA\_QUALITY\_SCORE\_\_C  IS\_SET then, serve them B1 behavior

![](/files/-MatT051GjwD7qxzBs1P)

For example, to target the visitors whose DATA\_QUALITY\_SCORE\_\_C  is not known to us. So, the rule will be DATA\_QUALITY\_SCORE\_\_C  IS\_NOT\_SET then, serve them B2 behavior

![](/files/-MatSmv-WQ6LlHXGy2Gr)

For reference,  click on the link to know the list of Salesforce properties wrt Leads, Contact, and Account.

<https://developer.salesforce.com/docs/atlas.en-us.sfFieldRef.meta/sfFieldRef/salesforce_field_reference_Lead.htm>


# HubSpot Attributes

On successful integration of the HubSpot, CustomFit displays 2 different HubSpot categories under which we have the various attributes:

* **HubSpot Contact**
* **HubSpot Firmographic**

All the HubSpot attributes can be attached to the visitors as query parameters. To write a rule based on HubSpot attributes

* Click on Add rules

![](/files/-MXHwZ5u1UBdiYriB54i)

* Click on the Attribute field

![](/files/-MXHwq442gRh61r-LqV4)

* In the dropdown, you can see the HubSpot Firmographic section

![](/files/-MXHxygc5pZjv8macU7t)

**If you select String type property then the supported operation types for String type attributes are:**

#### IS\_ONE\_OF, IS\_NOT\_ONE\_OF    &#x20;

Use this operation type if you want to match each character from start to end. For example, to target the visitors with the state as Karnataka. So, the rule will be State IS\_ONE\_OF Karnataka then, serve them B1 behavior.

![](/files/-MXHzs_jjfh12nOgfv_V)

For example, to target the visitors apart from the state as Karnataka. So, the rule will be State IS\_NOT\_ONE\_OF  Karnataka then, serve them B2 behavior.

![](/files/-MXI-h5OT29REVyi74-v)

#### STARTS\_WITH, DOES\_NOT\_STARTS\_WITH

Use this operation to perform the prefix match with the query parameter value. For example, to target the visitors whose domain name starts with CustomFit. So the rule will be Domain STARTS\_WITH CustomFit then, serve them B1 behavior

![](/files/-MXI0lLjvub5B4G6Jnh3)

For example, to target the visitors whose domain name does not starts with CustomFit. So the rule will be Domain DOES\_NOT\_STARTS\_WITH CustomFit then, serve them B2 behavior

![](/files/-MXI18qkQ3m55wIyMwZ1)

#### ENDS\_WITH, DOES\_NOT\_ENDS\_WITH

Use this operation to perform the suffix match with the query parameter value. For example, to target the visitors whose website ends with *ai* domain. So the rule will be Website ENDS\_WITH ai then, serve them B1 behavior

![](/files/-MXI2KcrWgC5KarA2sk5)

For example, to target the visitors whose website does not ends with *ai* domain. So the rule will be Website DOES\_NOT\_ENDS\_WITH ai then, serve them B2 behavior

![](/files/-MXI2F2CPMYPZ1Rv17af)

#### CONTAINS, DOES\_NOT\_CONTAINS

Use this operation to perform the substring match with the query parameter value.

For example, to target the visitors whose website contains .com. So the rule will be Website CONTAINS .com then, serve them B1 behavior

![](/files/-MXI4ik2Ks3OwmglFA-x)

For example, to target the visitors whose website does not contains .com. So the rule will be Website DOES\_NOT\_CONTAINS .com then, serve them B2 behavior

![](/files/-MXI5-deXNHRn9EPf0fz)

#### IS\_SET, IS\_NOT\_SET

Use this operation to check whether the query parameter value has been set or not. For example, to target the visitors whose DATA\_QUALITY\_SCORE\_\_C  is known to us. So, the rule will be DATA\_QUALITY\_SCORE\_\_C  IS\_SET then, serve them B1 behavior

![](/files/-MXI6D28v-CfOwVV-nvU)

For example, to target the visitors whose DATA\_QUALITY\_SCORE\_\_C  is not known to us. So, the rule will be DATA\_QUALITY\_SCORE\_\_C  IS\_NOT\_SET then, serve them B2 behavior

![](/files/-MXI5o1lRcqMybNw6whe)

**If you select Number type property then the supported operation types for Number type attributes are:**

#### IS\_ONE\_OF, IS\_NOT\_ONE\_OF

Use this operation type if you want to target the visitors whose num\_associated\_contacts is 1. So, the rule will be num\_associated\_contacts IS\_ONE\_OF 1 then, serve them B1 behavior

![](/files/-MXI79PUeXf9NeHx_MIy)

For example, to target the visitors whose num\_associated\_contacts is apart from 1. So, the rule will be num\_associated\_contacts  IS\_NOT\_ONE\_OF 1 then, serve them B2 behavior

![](/files/-MXI88DoHaCjN0f2cmvf)

#### GREATER\_THAN, GREATER\_THAN\_OR\_EQUAL\_TO

Use this operation type if you want to target visitors whose  number of employees is greater than 20. So,  Number of Employees is GREATER\_THAN 20  then, serve them B1 behavior

![](/files/-MXI9IU1oh4T4Gg4k662)

For example, to target visitors whose  number of employees is greater than or equal to 20. So, Number of Employees is GREATER\_THAN\_OR\_EQUAL\_TO 20  then, serve them B2 behavior

![](/files/-MXI9C-fBw8hy-FB--vg)

#### LESS\_THAN, LESS\_THAN\_OR\_EQUAL\_TO

Use this operation type if you want to target visitors whose  number of employees is less than 1000. So, the rule will be Number of Employees is  LESS\_THAN 1000 then, serve them B1 behavior

![](/files/-MXIAAdbwFAqoQqJ3o29)

For example to target visitors whose  number of employees is less than or equals to 1000. So, the rule will be Number of Employees is  LESS\_THAN\_OR\_EQUAL\_TO 1000 then, serve them B2 behavior

![](/files/-MXIAGv6kMrGNVGiSTs_)

#### IS\_SET, IS\_NOT\_SET

Use this operation to check whether the query parameter value has been set or not. For example, to target the visitors whose number of page views is known to us. So, the rule will be HS\_ANALYTICS\_NUM\_PAGE\_VIEWS  IS\_SET then, serve them B1 behavior

![](/files/-MXIBmYCfrFc-XB1kyyj)

For example, to target the visitors whose number of page views is not known to us. So, the rule will be HS\_ANALYTICS\_NUM\_PAGE\_VIEWS IS\_NOT\_SET then, serve them B2 behavior

![](/files/-MXIC-xtn3iTAFO2l9Fy)

For reference,  you can go through the below link to know the list of hubspot properties

<https://developers.hubspot.com/docs/api/crm/properties>


# Kickfire Attributes

On successful integration of the Kickfire, CustomFit displays various Kickfire attributes:

All the Kickfire attributes can be attached to the visitors as query parameters. To write a rule based on Kickfire attributes

* Click on Add rules

![](/files/-MXHGzraCy44kQ0CbRuA)

* Click on the Attribute field

![](/files/-MXHHBDQBie-xU8In2NL)

* In the dropdown, you can see the Kickfire section

![](/files/-MXHIAxjcddjmmCTvfSt)

**If you select String type property then the supported operation types for String type attributes are:**

#### IS\_ONE\_OF, IS\_NOT\_ONE\_OF    &#x20;

Use this operation type if you want to match each character from start to end. For example, to target the visitors with the country as India. So, the rule will be Country IS\_ONE\_OF India then, serve them B1 behavior.

![](/files/-MXHaPejjizvwXkkhZKk)

For example, to target the visitors apart from the country as India. So, the rule will be Country IS\_NOT\_ONE\_OF India then, serve them B2 behavior.

![](/files/-MXHaWqz-9IDemUoWDg2)

#### STARTS\_WITH, DOES\_NOT\_STARTS\_WITH

Use this operation to perform the prefix match with the query parameter value. For example, to target the visitors whose trade name starts with CustomFit. So the rule will be TradeName STARTS\_WITH CustomFit then, serve them B1 behavior

![](/files/-MXHb_Gp2EX1kbdwXzf4)

For example, to target the visitors whose trade name  does not starts with CustomFit. So the rule will be TradeName DOES\_NOT\_STARTS\_WITH CustomFit then, serve them B1 behavior

![](/files/-MXHbfV7CdogeCj4OWwY)

#### ENDS\_WITH, DOES\_NOT\_ENDS\_WITH

Use this operation to perform the suffix match with the query parameter value. For example, to target the visitors whose website ends with *ai* . So the rule will be Website ENDS\_WITH ai then, serve them B1 behavior

![](/files/-MXHi1q8rVfrB7bjhUa-)

For example, to target the visitors whose website does not ends with com. So the rule will be Website DOES\_NOT\_ENDS\_WITH com then, serve them B2 behavior

![](/files/-MXHhrnQe4tL02NjNq75)

#### CONTAINS, DOES\_NOT\_CONTAINS

Use this operation to perform the substring match with the query parameter value.

For example, to target the visitors whose companyname contains ltd. So the rule will be CompanyName  CONTAINS ltd then, serve them B1 behavior

![](/files/-MXHjQeopuGrS8RKLYGn)

For example, to target the visitors whose companyname does not contains ltd. So the rule will be CompanyName   DOES\_NOT\_CONTAINS ltd then, serve them B2 behavior

![](/files/-MXHjbIx2ftHjptrLtHS)

#### IS\_SET, IS\_NOT\_SET

Use this operation to check whether the query parameter value has been set or not. For example, to target the visitors whose sicgroup is known to us. So, the rule will be sicGroup IS\_SET then, serve them B1 behavior

![](/files/-MXHl-deTioCpUIkxV9I)

For example, to target the visitors whose sicgroup is not known to us. So, the rule will be sicGroup  IS\_NOT\_SET then, serve them B2 behavior

![](/files/-MXHlBJZEgjX_ijQcbUU)

**If you select Number type property then the supported operation types for Number type attributes are:**

#### IS\_ONE\_OF, IS\_NOT\_ONE\_OF

Use this operation type if you want to target the visitors whose confidence value is 75. So, the rule will be CONFIDENCE IS\_ONE\_OF 75 then, serve them B1 behavior

![](/files/-MXHsPB4e2LdZTAIzpgj)

For example, to target the visitors whose confidence value is not 75. So, the rule will be CONFIDENCE IS\_NOT\_ONE\_OF 75 then, serve them B2 behavior

![](/files/-MXHsXQ5zLprwCWznkjv)

#### GREATER\_THAN, GREATER\_THAN\_OR\_EQUAL\_TO

Use this operation type if you want to target visitors whose  dstoffset is greater than 0. So,  DSTOFFSET is GREATER\_THAN 0  then, serve them B1 behavior

![](/files/-MXHpUQxR0PhM5eitE60)

For example, to target visitors whose  dstoffset is greater than or equal to 0. So,  DSTOFFSET is GREATER\_THAN\_OR\_EQUAL\_TO 0  then, serve them B2 behavior

![](/files/-MXHpEjdk22aWh-WA4EQ)

#### LESS\_THAN, LESS\_THAN\_OR\_EQUAL\_TO

Use this operation type if you want to target visitors whose dstoffset  is less than 1. So, the rule will be DSTOFFSET LESS\_THAN 1 then, serve them B1 behavior

![](/files/-MXHr1VIfP-4oz-oSkY0)

For example, to target visitors whose dstoffset  is less than or equal to 1. So, the rule will be DSTOFFSET LESS\_THAN\_OR\_EQUAL\_TO 1 then, serve them B2 behavior

![](/files/-MXHrhx1TUlwF342eT1V)

#### IS\_SET, IS\_NOT\_SET

Use this operation to check whether the query parameter value has been set or not. For example, to target the visitors whose isISP is known to us. So, the rule will be ISISP IS\_SET then, serve them B1 behavior

![](/files/-MXHuBTmT93jOndI7Tm2)

For example, to target the visitors whose isISP is not known to us. So, the rule will be ISISP IS\_NOT\_SET then, serve them B2 behavior

![](/files/-MXHu22ju_CdcjOpexG3)


# Visitor Behavior

CustomFit allows you to target based on the behavior of the visitors. For example, if the visitor is visiting the website for the first time or the visitor is a repeated visitor, whether the visitor has clicked on the demo button, and so on.&#x20;


# Page event

For page events, CustomFit.ai supports three types of operator types:

| Operator Type         | Description                                       |
| --------------------- | ------------------------------------------------- |
| Has been viewed       | Whether the selected page has been viewed         |
| Has not been viewed   | Whether the selected page has not been viewed     |
| Compare view by count | Comparing two different pages by their view count |

### Has been viewed

CustomFit supports the following conditions for has been viewed operator type

| Conditions | Allowed Values | Description                                                     |
| ---------- | -------------- | --------------------------------------------------------------- |
| Frequency  | Exactly        | The selected page has been viewed exactly "n" times             |
|            | At Most        | The selected page has been viewed at most "n" times             |
|            | At Least       | The selected page has been viewed at least "n" times            |
| Duration   | On             | The selected page has been viewed on the given date "X"         |
|            | In The Last    | The selected page has been viewed in the last "X" days          |
|            | In Between     | The selected page has been viewed between "X" date and "Y" date |
|            | Before         | The selected page has been viewed before "X" date               |
|            | After          | The selected page has been viewed after "X" date                |

#### Frequency Exactly

For example, targeting visitors who have visited the pricing page exactly 3 times in the last 10 days then serve them B1 behavior

![](/files/-MatYJiRegfe18mMox2k)

#### Frequency Atmost

For example, targeting visitors who have visited the pricing page atmost(Maximum) 3 times in the last 10 days then serve them B1 behavior

![](/files/-MatYQHuNAXCaShvNt1S)

#### Frequency Atleast

For example, targeting visitors who have visited the pricing page atleast(Minimum) 3 times in the last 10 days then serve them B1 behavior

![](/files/-MatYBtPunrmxq9IGcCX)

#### Duration On

For example, targeting visitors who have visited the pricing page exactly 3 times on 01/10/2021(MM/DD/YYYY) then serve them B1 behavior

![](/files/-MatYjucOouKMRY0hkVt)

#### Duration In the last

For example, targeting visitors who have visited the pricing page atleast 3 times in the last 10 days then serve them B1 behavior

![](/files/-MatYBtPunrmxq9IGcCX)

#### Duration In between

For example, targeting visitors who have visited the pricing page alteast 3 times in between 01/10/2021 to 01/20/2021(MM/DD/YYYY) then serve them B1 behavior

![](/files/-MatZ8k3RknGPrcS85em)

#### Duration Before

For example, targeting visitors who have visited the pricing page atleast 3 times before 01/10/2021(MM/DD/YYYY) then serve them B1 behavior

![](/files/-MatZmvmyxIjTVkWt-Oh)

#### Duration After

For example, targeting visitors who have visited the pricing page atleast 3 times after 01/10/2021(MM/DD/YYYY) then serve them B1 behavior

![](/files/-Mat_7S6yaz76zFJm5AC)

### Has not been viewed

CustomFit supports the following conditions for has not been viewed operator type

| Conditions | Allowed Values | Description                                                         |
| ---------- | -------------- | ------------------------------------------------------------------- |
| Duration   | On             | The selected page has not been viewed on the given date "X"         |
|            | In The Last    | The selected page has not been viewed in the last "X" days o        |
|            | In Between     | The selected page has not been viewed between "X" date and "Y" date |
|            | Before         | The selected page has not been viewed before "X" date               |
|            | After          | The selected page has not been viewed after "X" date                |

#### Duration On

For example, targeting visitors who have not visited the pricing page on 01/10/2021(MM/DD/YYYY) then serve them B1 behavior

![](/files/-MatpEtvVpdB9fPBTazx)

#### Duration In the last

For example, targeting visitors who have not visited the pricing page in the last 10 days then serve them B1 behavior

![](/files/-MatpMoti-mak8ZKnL9f)

#### Duration In between

For example, targeting visitors who have not visited the pricing page in between 01/10/2021 to 01/20/2021(MM/DD/YYYY) then serve them B1 behavior

![](/files/-MatpeIvolqCwV_JiSJ3)

#### Duration Before

For example, targeting visitors who have not visited the pricing page before 01/10/2021(MM/DD/YYYY) then serve them B1 behavior

![](/files/-Matpnsz4MWJSY6i8ah9)

#### Duration After

For example, targeting visitors who have not visited the pricing page after 01/10/2021(MM/DD/YYYY) then serve them B1 behavior

![](/files/-MatouEEpDdUPD6Kg03m)

### Compare view by count

For Compare view by count, CustomFit supports the following conditions

| Conditions | Allowed Values            | Description                                                                                                       |
| ---------- | ------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| Frequency  | Greater Than              | The selected page should have been viewed more number of times compared to the list of pages selected             |
|            | Greater Than or Equals to | The selected page should have been viewed more or the same number of times compared to the list of pages selected |
|            | Lesser Than               | The selected page should have been viewed less number of times compared to the list of pages selected             |
|            | Lesser Than or Equals To  | The selected page should have been viewed less or same number of times compared to the list of pages selected     |
|            | Equals                    | The selected page should have been viewed same number of times compared to the list of pages selected             |
| Duration   | On                        | The comparison of the count value will be on the given date "X"                                                   |
|            | In The Last               | The comparison of the count value will be in the last "X" days                                                    |
|            | In Between                | The comparison of the count value will be between "X" date and "Y" date                                           |
|            | Before                    | The comparison of the count value will be before "X" date                                                         |
|            | After                     | The comparison of the count value will be after "X" date                                                          |

#### Frequency Greater than

For example, targeting visitors who have visited subscription management page more number of times when compared to Billing automation & UPI transactions page in the last 10 days then, serve them Subscription management behavior

![](/files/-MUrhHb2zoyW5BqXNjdu)

#### Frequency Greater than Equal to

For example, targeting visitors who have visited subscription management page more or equal number of times when compared to Billing automation & UPI transactions page in the last 10 days then, serve them Subscription management behavior

#### Frequency Lesser than

For example, targeting visitors who have visited subscription management page less number of times when compared to Billing automation & UPI transactions page in the last 10 days then, serve them Subscription management behavior

![](/files/-MUrjpwbUSSOuAMbvEst)

#### Frequency Lesser than Equal to

For example, targeting visitors who have visited subscription management page less or equal number of times when compared to Billing automation & UPI transactions page in the last 10 days then, serve them Subscription management behavior

#### Frequency Equals

For example, targeting visitors who have visited subscription management page same number of times when compared to Billing automation & UPI transactions page in the last 10 days then, serve them Subscription management behavior

![](/files/-MUrid89jq_2ML3UYpN-)

#### Duration On

For example, serve Subscription management behavior who have visited subscription management page more number of times when compared to Billing automation & UPI transactions page on 01/10/2021(MM/DD/YYYY)

![](/files/-MUs5SrUiIE_ogPLz14z)

#### Duration In the last

For example, serve Subscription management behavior who have visited subscription management page more number of times when compared to Billing automation & UPI transactions page in the last 10 days

![](/files/-MUs5XgnO8Ib46m56sBb)

#### Duration In between

For example, serve Subscription management behavior who have visited subscription management page more number of times when compared to Billing automation & UPI transactions page between 01/10/2021 to 01/20/2021(MM/DD/YYYY)

![](/files/-MUs5cEAM5Jbb5Vs2v1V)

#### Duration After

For example, serve Subscription management behavior who have visited subscription management page more number of times when compared to Billing automation & UPI transactions page after 01/10/2021(MM/DD/YYYY)

![](/files/-MUs5hQErVZdAJQlTNH0)

#### Duration Before

For example, serve Subscription management behavior who have visited subscription management page more number of times when compared to Billing automation & UPI transactions page before 01/10/2021(MM/DD/YYYY)

![](/files/-MUs5odCOVH8yszITVpT)


# Click event

For click events, CustomFit.ai supports three types of operator types:

| Operator Type          | Description                                         |
| ---------------------- | --------------------------------------------------- |
| Has been clicked       | Whether the selected event has been clicked         |
| Has not been clicked   | Whether the selected event has not been clicked     |
| Compare click by count | Comparing two different events by their click count |

### Has been clicked

CustomFit supports the following conditions for has been clicked operator type

| Conditions | Allowed Values | Description                                                           |
| ---------- | -------------- | --------------------------------------------------------------------- |
| Frequency  | Exactly        | The selected event has been clicked exactly "n" times                 |
|            | At Most        | The selected event has been clicked at most "n" times                 |
|            | At Least       | The selected event has been clicked at least "n" times                |
| Duration   | On             | The selected event has been clicked on the given date "X"             |
|            | In The Last    | The selected event has been clicked in the last "X" days or "X" hours |
|            | In Between     | The selected event has been clicked between "X" date and "Y" date     |
|            | Before         | The selected event has been clicked before "X" date                   |
|            | After          | The selected event has been clicked after "X" date                    |

#### Frequency Exactly

For example, targeting visitors who have clicked on Get pricing button exactly 3 times in the last 10 days then serve them B1 behavior

![](/files/-MUsYX48oIb1SeAVidzE)

#### Frequency Atmost

For example, targeting visitors who have clicked on Get pricing button atmost 3 times in the last 10 days then serve them B1 behavior

![](/files/-MUsdgouDWVgzl9l0N7N)

#### Frequency Atleast

For example, targeting visitors who have clicked on Get pricing button atleast 1 times in the last 10 days then serve them B1 behavior

![](/files/-MUsdVe7j-75-yt5T0EN)

#### Duration On

For example, targeting visitors who have clicked on Get pricing button atleast 1 times on 01/10/2021(MM/DD/YYYY) then serve them B1 behavior

![](/files/-MUsdIgc-0We99JaYoAN)

#### Duration In the last

For example, targeting visitors who have clicked on Get pricing button atleast 1 times in the last 10 days then serve them B1 behavior

![](/files/-MUsdEhn4_cI1rU2Utlv)

#### Duration In between

For example, targeting visitors who have clicked on Get pricing button atleast 1 times between 01/10/2021(MM/DD/YYYY) and 01/20/2021(MM/DD/YYYY) then serve them B1 behavior

![](/files/-MUsd96MPUOEiAGcVm_1)

#### Duration Before

For example, targeting visitors who have clicked on Get pricing button atleast 1 times before 01/10/2021(MM/DD/YYYY) then serve them B1 behavior

![](/files/-MUsd4jW_-olzvSom7hF)

#### Duration After

For example, targeting visitors who have clicked on Get pricing button atleast 1 times after 01/10/2021(MM/DD/YYYY) then serve them B1 behavior

![](/files/-MUsd12V-Jqlh9Gzmc0i)

### Has not been clicked

CustomFit supports the following conditions for has not been clicked operator type

| Conditions | Allowed Values | Description                                                               |
| ---------- | -------------- | ------------------------------------------------------------------------- |
| Duration   | On             | The selected event has not been clicked on the given date "X"             |
|            | In The Last    | The selected event has not been clicked in the last "X" days or "X" hours |
|            | In Between     | The selected event has not been clicked between "X" date and "Y" date     |
|            | Before         | The selected event has not been clicked before "X" date                   |
|            | After          | The selected event has not been clicked after "X" date                    |

#### Duration On

For example, targeting visitors who have not clicked on Get pricing button on 01/10/2021(MM/DD/YYYY) then serve them B1 behavior

![](/files/-MUsbn8WxKIt1fC0aneA)

#### Duration In the last

For example, targeting visitors who have not clicked on Get pricing button in the last 10 days then serve them B1 behavior

![](/files/-MUsbrGKHBa3dMiPdZ-L)

#### Duration In between

For example, targeting visitors who have not clicked on Get pricing button between 01/10/2021(MM/DD/YYYY) and 01/20/2021(MM/DD/YYYY) then serve them B1 behavior

![](/files/-MUsbun85cRNhXAtgL2O)

#### Duration Before

For example, targeting visitors who have not clicked on Get pricing button before 01/10/2021(MM/DD/YYYY) then serve them B1 behavior

![](/files/-MUsbyW-RzsgaGNtUras)

#### Duration After

For example, targeting visitors who have not clicked on Get pricing button after 01/10/2021(MM/DD/YYYY) then serve them B1 behavior

![](/files/-MUsc5LfE-jo6PyGTn0P)

### Compare click by count

CustomFit supports the following conditions for click by count operation type

| Conditions | Allowed Values            | Description                                                                                                      |
| ---------- | ------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| Frequency  | Greater Than              | The selected event has been clicked more number of times when compared with the list of events selected          |
|            | Greater Than or Equals to | The selected event has been clicked more or equal number of times when compared with the list of events selected |
|            | Lesser Than               | The selected event has been clicked less number of times when compared with the list of events selected          |
|            | Lesser Than or Equals To  | The selected event has been clicked less or equal number of times when compared with the list of events selected |
|            | Equals                    | The selected event has been clicked equal number of times when compared with the list of events selected         |
| Duration   | On                        | The comparison of the count value will be on the given date "X"                                                  |
|            | In The Last               | The comparison of the count value will be in the last "X" days                                                   |
|            | In Between                | The comparison of the count value will be between "X" date and "Y" date                                          |
|            | Before                    | The comparison of the count value will be before "X" date                                                        |
|            | After                     | The comparison of the count value will be after "X" date                                                         |

#### Frequency Greater than

For example, targeting visitors who have clicked Startup plan button more number of times when compared to SMB plan & Enterprise plan button in the last 10 days then, serve them Startup Behavior

![](/files/-MUsh_Ve7XRWYd39xBpw)

#### Frequency Greater than Equals

For example, targeting visitors who have clicked Startup plan button more or same number of times when compared to SMB plan & Enterprise plan button in the last 10 days then, serve them Startup Behavior

#### Frequency Less than

For example, targeting visitors who have clicked Startup plan button less number of times when compared to SMB plan & Enterprise plan button in the last 10 days then, serve them SMB or Enterprise Behavior

![](/files/-MUshWUvgpdzz-GFScCb)

#### Frequency Less than Equals

For example, targeting visitors who have clicked Startup plan button less or same number of times when compared to SMB plan & Enterprise plan button in the last 10 days then, serve them SMB or Enterprise Behavior

#### Frequency Equals

For example, targeting visitors who have clicked Startup plan button same number of times when compared to SMB plan & Enterprise plan button in the last 10 days then, serve them SMB or Enterprise or Startup behavior

![](/files/-MUshSkcujNk48ZER2Or)

#### Duration On

For example, targeting visitors who have clicked Startup plan button more number of times when compared to SMB plan & Enterprise plan button on 10/01/2021 then, serve them Startup Behavior

![](/files/-MUt2Ehr18MnTD9c3m_e)

#### Duration In the last

For example, targeting visitors who have clicked Startup plan button more number of times when compared to SMB plan & Enterprise plan button in the last 10 days then, serve them Startup Behavior

![](/files/-MUt2B5Q4jFiRBDrnVu6)

#### Duration In between

For example, targeting visitors who have clicked Startup plan button more number of times when compared to SMB plan & Enterprise plan button between 10/01/2021 and 20/01/2021 then, serve them Startup Behavior

![](/files/-MUt27QihB1B_sLznxP0)

#### Duration Before

For example, targeting visitors who have clicked Startup plan button more number of times when compared to SMB plan & Enterprise plan button in the before 10/01/2021 then, serve them Startup Behavior

![](/files/-MUt21RHzNc1DJriK8Fu)

#### Duration After

For example, targeting visitors who have clicked Startup plan button more number of times when compared to SMB plan & Enterprise plan button in the after 10/01/2021 then, serve them Startup Behavior

![](/files/-MUt1xojWjFg4QyMYoL0)


# Track event

For track events, CustomFit.ai supports three types of operator types:

| Operator Type          | Description                                         |
| ---------------------- | --------------------------------------------------- |
| Has been tracked       | Whether the selected event has been tracked         |
| Has not been tracked   | Whether the selected event has not been tracked     |
| Compare track by count | Comparing two different events by their track count |

### Has been tracked

CustomFit supports the following conditions for has been tracked operator type

| Conditions | Allowed Values | Description                                                           |
| ---------- | -------------- | --------------------------------------------------------------------- |
| Frequency  | Exactly        | The selected event has been tracked exactly "n" times                 |
|            | At Most        | The selected event has been tracked at most "n" times                 |
|            | At Least       | The selected event has been tracked at least "n" times                |
| Duration   | On             | The selected event has been tracked on the given date "X"             |
|            | In The Last    | The selected event has been tracked in the last "X" days or "X" hours |
|            | In Between     | The selected event has been tracked between "X" date and "Y" date     |
|            | Before         | The selected event has been tracked before "X" date                   |
|            | After          | The selected event has been tracked after "X" date                    |

#### Frequency Exactly

For example, tracking the number of times the visitors has played the demo video. If a visitor has played the demo video exactly 3 times in the last 10 days then, serve them B1 behavior

![](/files/-MXBH-MAoOveONRLUYJk)

![](/files/-MXBpdlAEN-2_qmMt7E2)

#### Frequency Atmost

For example, tracking the number of times the visitors has played the demo video. If a visitor has played the demo video atmost 3 times in the last 10 days then, serve them B1 behavior

![](/files/-MXBHIyFo-NDv7VKROf-)

![](/files/-MXBq6g0i4twgL3aJQKt)

#### Frequency Atleast

For example, targeting visitors who have clicked on Get pricing button atleast 1 time in the last 10 days then serve them B1 behavior

For example, tracking the number of times the visitors has played the demo video. If a visitor has played the demo video atleast 1 time in the last 10 days then, serve them B1 behavior

![](/files/-MXBHuPIcHUAzS-8tVXl)

![](/files/-MXBqybP3LlqXW9wdAfq)

#### Duration On

For example, tracking the number of times the visitors has played the demo video. If a visitor has played the demo video atleast 1 time on 10/01/2021then, serve them B1 behavior

![](/files/-MXBIBtyMLRZHHXKZh91)

![](/files/-MXBr9Z6FPCl4lv5F7rb)

#### Duration In the last

For example, tracking the number of times the visitors has played the demo video. If a visitor has played the demo video atleast 1 time in the last 10 days then, serve them B1 behavior

![](/files/-MXBHuPIcHUAzS-8tVXl)

![](/files/-MXBr-Qo5qiesgHpRQFN)

#### Duration In between

For example, tracking the number of times the visitors has played the demo video. If a visitor has played the demo video atleast 1 time in between 10/01/2021 and 20/01/2021 then, serve them B1 behavior

![](/files/-MXBIgaGIy2P-4RIczwA)

![](/files/-MXBrOo8QnptOaanMjZH)

#### Duration Before

For example, tracking the number of times the visitors has played the demo video. If a visitor has played the demo video atleast 1 time before 10/01/2021 then, serve them B1 behavior

![](/files/-MXBIuZ8O5jdfoK_oAqz)

![](/files/-MXBrWitnoGRFcBvyLea)

#### Duration After

For example, tracking the number of times the visitors has played the demo video. If a visitor has played the demo video atleast 1 time after 10/01/2021 then, serve them B1 behavior

![](/files/-MXBJBQbMpbgwY8PF8gl)

![](/files/-MXBrdXP64EBWW4O6wbE)

### Has not been tracked

CustomFit supports the following conditions for has not been tracked operator type

| Conditions | Allowed Values | Description                                                               |
| ---------- | -------------- | ------------------------------------------------------------------------- |
| Duration   | On             | The selected event has not been tracked on the given date "X"             |
|            | In The Last    | The selected event has not been tracked in the last "X" days or "X" hours |
|            | In Between     | The selected event has not been tracked between "X" date and "Y" date     |
|            | Before         | The selected event has not been tracked before "X" date                   |
|            | After          | The selected event has not been tracked after "X" date                    |

#### Duration On

For example, tracking the number of times the visitors has played the demo video. If the visitors has not played the demo video on 10/01/2021 then, serve them B1 behavior

![](/files/-MXBJojtKjS8xLOTNLx0)

![](/files/-MXBtLjadpW8kBbvJHzc)

#### Duration In the last

For example, tracking the number of times the visitors has played the demo video. If the visitor has not played the demo video in the last 10 days then, serve them B1 behavior

![](/files/-MXBK2qpoGnCXRG9Yywo)

![](/files/-MXBtVEie0ZIs2Ow9MUt)

#### Duration In between

For example, tracking the number of times the visitors has played the demo video. If the visitor has not played the demo video in between 10/01/2021 and 20/01/2021 then, serve them B1 behavior

![](/files/-MXBKWPur_jWR1PMP6Hm)

![](/files/-MXBteG-4KNqhKe25huK)

#### Duration Before

For example, tracking the number of times the visitors has played the demo video. If the visitor has not played the demo video before 10/01/2021 then, serve them B1 behavior

![](/files/-MXBKkACExMpr-0jXZAR)

![](/files/-MXBtmAu1o3g7w5UMQOL)

#### Duration After

For example, tracking the number of times the visitors has played the demo video. If the visitor has not played the demo video after 10/01/2021 then, serve them B1 behavior

![](/files/-MXBJSH7c9hJpVbclsGE)

![](/files/-MXBseAyXwtu8n9M-Xhm)

### Compare track by count

CustomFit supports the following conditions for track by count operation type

| Conditions | Allowed Values            | Description                                                                                                      |
| ---------- | ------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| Frequency  | Greater Than              | The selected event has been tracked more number of times when compared with the list of events selected          |
|            | Greater Than or Equals to | The selected event has been tracked more or equal number of times when compared with the list of events selected |
|            | Lesser Than               | The selected event has been tracked less number of times when compared with the list of events selected          |
|            | Lesser Than or Equals To  | The selected event has been tracked less or equal number of times when compared with the list of events selected |
|            | Equals                    | The selected event has been tracked equal number of times when compared with the list of events selected         |
| Duration   | On                        | The comparison of the count value will be on the given date "X"                                                  |
|            | In The Last               | The comparison of the count value will be in the last "X" days                                                   |
|            | In Between                | The comparison of the count value will be between "X" date and "Y" date                                          |
|            | Before                    | The comparison of the count value will be before "X" date                                                        |
|            | After                     | The comparison of the count value will be after "X" date                                                         |

#### Frequency Greater than

#### Frequency Greater than

For example, if a visitor has played the product1 video more number of times when compared with the product2 video in the last 10 days then, serve them B1 behavior

![](/files/-MXBvLEunFAv7LWGe0eE)

#### Frequency Greater than Equals

For example, if a visitor has played the product1 video more or same number of times when compared with the product2 video in the last 10 days then, serve them B1 behavior

#### Frequency Less than

For example, if a visitor has played the product1 video less number of times when compared with the product2 video in the last 10 days then, serve them B1 behavior

![](/files/-MXBxoHf-QlcUs_fPs1d)

#### Frequency Less than Equals

For example, if a visitor has played the product1 video less or same number of times when compared with the product2 video in the last 10 days then, serve them B1 behavior

#### Frequency Equals

For example, if a visitor has played the product1 video same number of times when compared with the product2 video in the last 10 days then, serve them B1 behavior

![](/files/-MXBxvFp-zt1U9WWbdOZ)

#### Duration On

For example, if a visitor has played the product1 video more number of times when compared with the product2 video on 10/01/2021 then, serve them B1 behavior

![](/files/-MXBzI7MnVDGaDDwT2pK)

#### Duration In the last

For example, if a visitor has played the product1 video more number of times when compared with the product2 video in the last 10 days then, serve them B1 behavior

![](/files/-MXBz8zbZ8CR1AKJn_C-)

#### Duration In between

For example, if a visitor has played the product1 video more number of times when compared with the product2 video  in between 10/01/2021 and 20/01/2021 then, serve them B1 behavior

![](/files/-MXBzRF8XUfLLJGjfFmJ)

#### Duration  Before

For example, if a visitor has played the product1 video more number of times when compared with the product2 video before 10/01/2021 then, serve them B1 behavior

![](/files/-MXBzmhXnz5EuiynOQyK)

#### Duration After

For example, if a visitor has played the product1 video more number of times when compared with the product2 video after 10/01/2021 then, serve them B1 behavior

![](/files/-MXBzzeJh-EBCnehD25K)


# GA4 Integration

Google Analytics 4 (GA4) lets you collect visitor data on your websites and apps for analytical purposes. You can import audiences from GA4 into your CustomFit account and create GA4 audiences directly from your CustomFit dashboard by linking your CustomFit account with GA4.

Integrating CustomFit with GA4 is a one-time process. You don't need to repeat this procedure every time you create a new experience.

{% hint style="warning" %}
You must first verify that the GA4 code is installed on your website before continuing. If Google Tag Manager (GTM) was used for installation, please follow the instructions present in this [document](https://doc.customfit.ai/integrations/ga4-integration-via-gtm).
{% endhint %}

### Enabling GA4 Integration

Perform the following steps to integrate GA4 with your CustomFit account:

* Log in to your CustomFit dashboard.
* From the dashboard sidebar, click on **Settings > 3rd Party Integrations.**
* On the integrations page, you can see the **Google Analytics 4** section.

<figure><img src="/files/enN7VCuj0mAAi07ijUII" alt=""><figcaption></figcaption></figure>

* Click on the status field to enable Google Analytics 4 integration.

### Configuring GA4

* Once GA4 has been enabled, you will be redirected to the settings page. Or you can access the GA4 settings page by clicking on the Settings button present in the **Google Analytics 4** section.
* Connect your GA4 account with CustomFit.ai by clicking on **Sign in with Google.**

<figure><img src="/files/evdjAudBoLnNz7h9irYg" alt=""><figcaption></figcaption></figure>

* Confirm the Google account you wish to use with CustomFit. Then, click Allow to provide permissions.

<figure><img src="/files/pANtLN71TL2rbDzJN3Ci" alt=""><figcaption></figcaption></figure>

* If the integration is successful then you can see your GA4 connected email successful,.

<figure><img src="/files/O2TO6ZMnZir6An5pcGp8" alt=""><figcaption></figcaption></figure>

* If you have installed GA4 through GTM then select the Tag installation mode as Google Tag Manager and Click on **Save** button. Follow the instructions listed in this [document](https://doc.customfit.ai/integrations/ga4-integration-via-gtm) to integrate GA4 through GTM.

<figure><img src="/files/VNzL7PwpMTCpfqWDnIg8" alt=""><figcaption></figcaption></figure>

### Setting up Experience Behavior as Audience in GA4

You can create audiences for your experience in your GA4 account directly from your CustomFit dashboard. It spares you from repeatedly setting up your GA4 filters in order to create audiences. Perform the following steps to accomplish it:

* Select **Allow CustomFit.ai to create GA4 audiences,** and click on the **Save** butto&#x6E;**.**

<figure><img src="/files/8a7nIlTXQlLQv61YQDa9" alt=""><figcaption></figcaption></figure>

* Now you will be able to set up your experience behavior as an audience in GA4. You can setup the audience while creating an experience or even after the experience has been created. To set up an audience in an experience, go to the integrations tab under an experience and click on **Set up Behaviors as Audiences in GA4**.

<figure><img src="/files/9ttxrSULe6ZDzJjldoL1" alt=""><figcaption></figcaption></figure>

* Choose the GA account and property from the Set up Audiences pop-up. By doing this, the Audiences section will be enabled and it will populate all the versions of experience behaviors to be setup as Audiences in GA4.

<figure><img src="/files/oWgohCrstqKTRAjoF2Gj" alt=""><figcaption></figcaption></figure>

* Type the versions' names into the corresponding text areas. This name will be used to identify the audiences in the GA4 account. Once done, click on the **Save** button. The audience will be created only when you **power on** the experience.
* You can only remove audiences once they have been set up; you cannot change any already-existing audiences. To do so, click on **Manage Audiences**.

<figure><img src="/files/B8iNwR7IDRfmD46CbOtQ" alt=""><figcaption></figcaption></figure>

* To remove an audience, click on the Delete icon for that audience. Click on Delete all to remove all the audiences. Once done, click **Save** button to confirm the changes.

<figure><img src="/files/GE3nS4j9irptOHX8xjFT" alt=""><figcaption></figcaption></figure>

### Reports in GA4

Once your audiences are created, you can compare them in your GA4 account for various parameters such as average Session Duration, Revenue, Bounce rate, etc. To view the reports, perform the below steps:

* On your GA4 dashboard, go to User Acquisition. This is the report for all the users.

<figure><img src="/files/mC2EZLHvCIRa2b7qlEFr" alt=""><figcaption></figcaption></figure>

* If you want to compare the user acquisition report with one of the audiences created by CustomFit, then click on **Add Comparison**. Enter the **dimension** as the audience name, then under **Match Type,** select **exactly matches,** and under the value, select the experience behavior of the audience that you want to compare. Next, click on the **Apply** button.

<figure><img src="/files/5histvpvMBMHysiqdj8o" alt=""><figcaption></figcaption></figure>

{% embed url="<https://youtu.be/8lkykgOFEQk>" %}

### Using GA4 audience to target visitors

To target website visitors for your experience, you may also import the audiences from GA4 into your CustomFit account. For example, you can use the audience that has added items to a wishlist and provide them with a special discount when they land on the website. To import GA4 audiences, perform the below steps:

* In the GA4 settings page, select **For CustomFit.ai experiences, use the GA4 audience to target visitors** option, and click on the **Save** button.

<figure><img src="/files/GhTWF7TPhiWbbPutpIVr" alt=""><figcaption></figcaption></figure>

* Navigate to the experience where you wish to set up the GA4 audience as a rule.
* Click on **Add Rules**.

<figure><img src="/files/oSLkEIoYE2T4TxXuiCHs" alt=""><figcaption></figcaption></figure>

* From the list of options available, select **GA4 Audience.**

<figure><img src="/files/v2KhCKUnQOiuvr7r52U8" alt=""><figcaption></figcaption></figure>

* To view the Audience list for a particular GA4 account and property, pick it from the popup.

<figure><img src="/files/mZ20l63tKkdUAJyWvE6M" alt=""><figcaption></figcaption></figure>

* The **Audience match** and **Audience not match** options let you decide whether to include or exclude the user from the audience list.

<figure><img src="/files/X4vbHXSOVMvua1LiaZLD" alt=""><figcaption></figcaption></figure>

* Next, choose the necessary GA4 audience from the final dropdown menu.

<figure><img src="/files/s6sHGcomT3XEnEp4CF4e" alt=""><figcaption></figcaption></figure>

* Lastly, to save the configuration, click the **Save** button.

<figure><img src="/files/YKQuQBNSxegHKOmvzEYC" alt=""><figcaption></figcaption></figure>

{% embed url="<https://youtu.be/oQrqM4P0EO0>" %}


# GA4 Integration via GTM

### Creating Data Layer Variable

* Log in to your GTM account.
* Click on the **Variables** from the sidebar and then click on **New** button present in User-Defined Variables section.

<figure><img src="/files/vMbXtDC1t89BOx6i5XFi" alt=""><figcaption></figcaption></figure>

* Enter the title as **CustomFit-Exp-Beh-String**
* Next, select the variable type as **Data Layer Variable**.
* Then, provide the Data Layer Variable Name as **customfit\_exp\_beh\_string**.
* Set the **Data Layer Version** to **Version 2.**
* Finally, set the **Default value** as **0** and click the **Save** button.

<figure><img src="/files/i1O43vCnmibii2b5MZCg" alt=""><figcaption></figcaption></figure>

### Creating Triggers

* Click on the **Triggers** from the sidebar and then click on the **New** button.

<figure><img src="/files/XXvHmgbCpOOrTuwiiXTJ" alt=""><figcaption></figcaption></figure>

* Give the **Trigger Name** as **CustomFit-Data-Push-GA4-Trigger**.
* Next, click on the **Trigger Configuration** and choose the Trigger type as **Custom Event**.
* Enter the E**vent name** as **customfit-data-push-ga4.**
* Finally, click on the **Save** button.

<figure><img src="/files/LsDcRAzY4WtnQKLqCSA7" alt=""><figcaption></figcaption></figure>

### Creating Tags

* Click on the **Tags** from the sidebar and then click on the **New** button.

<figure><img src="/files/2b4afZwg2bt9pxzwLq0K" alt=""><figcaption></figcaption></figure>

* Give the **Tag Name** as **CustomFit-Data-Push-GA4**.
* Next, click the **Tag Configuration** and choose Tag type as **Google Analytics**. In Google Analytics, select **Google Analytics: GA4 Event** option.
* In the **Measurement ID** field, enter the Measurement ID of the GA4 account to which the data needs to be sent.
* Enter the **Event Name** as **experience\_impression.**
* In the **Event Parameters** section, click on the **Add row** button. Give the **Event Parameter** as **exp\_variant\_string** and value as **{{CustomFit-Exp-Beh-String}}**.
* Finally, click the **Triggering** section, and choose the **Firing Triggers** as **CustomFit-Data-Push-GA4-Trigger**. And Click on the **Save** button.

<figure><img src="/files/T3QnnFclsYe5zU69f7wL" alt=""><figcaption></figcaption></figure>

### Enabling and Configuring GA4 in CustomFit.ai

GTM is now fully set up to capture your CustomFit.ai data. The next step is to forward this data to GA4 by enabling the GA4 integration within your CustomFit.ai experiences. For detailed guidance on enabling the integration and completing the setup, refer to the article [linked](/integrations/ga4-integration).


# Microsoft Clarity Integration

Microsoft Clarity is a behavioral analytics tool that offers dashboards, heatmaps, session replays, and features such as rage clicks and dead clicks that make it easy to analyze issues that frustrate users.

You can integrate your CustomFit account with Microsoft Clarity to have your CustomFit experiences and behaviours pushed as custom tags in Clarity. This will allow you to view the recordings, heatmaps, and other insights of the corresponding visitor sessions if you are tracking website visitors with CustomFit and Microsoft Clarity.

### Prerequisites

* A Microsoft Clarity account that is currently active
* Your webpage should have both the CustomFit code snippet and Microsoft Clarity analytics code.

### Integrating CustomFit with Clarity

* Log in to your CustomFit dashboard.
* From the dashboard sidebar, click on **Settings > 3rd Party Integrations.**
* On the integrations page, you can see the **Clarity** section.

<figure><img src="/files/4aUmWLwH71wnb6n2NThT" alt=""><figcaption></figcaption></figure>

* Click on the status field to enable Clarity integration.

<figure><img src="/files/vwiFNvnzZiygVHDTCJgY" alt=""><figcaption></figcaption></figure>

### Analyze recordings and heatmaps in Microsoft Clarity

* Log in to your Microsoft Clarity account.
* Go to **My Projects** and select your project.
* Click on **Filters**.

<figure><img src="/files/ZA9GYgAWBcFw63UiRTpd" alt=""><figcaption></figcaption></figure>

* Go to the **Customised Filters** section and click on **Customised Tags** option.

<figure><img src="/files/ABD4x1Gy3Y4gqHuFtr6M" alt=""><figcaption></figcaption></figure>

* From the **Customised tags** dropdown, select **customfit**. From the next dropdown select the required experience behavior and click on **Apply** button.

<figure><img src="/files/P4cLgm79qYoYMcCgu8uk" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
It will take around one hour for the custom tags that are pushed from CustomFit to appear in Microsoft Clarity.
{% endhint %}

{% embed url="<https://youtu.be/d01D1XnmqQ8>" %}


# Hotjar Integration

Hotjar tracks how visitors use and interact with your website or product. You can integrate your CustomFit account with Hotjar to have your CustomFit experiences and behaviours pushed as custom event in Hotjar. This will allow you to view the recordings, heatmaps, and other insights of the corresponding visitor sessions if you are tracking website visitors with CustomFit and Hotjar.

### Prerequisites

* A Hotjar account that is currently active
* Your webpage should have both the CustomFit code snippet and the Hotjar analytics code.

### Integrating CustomFit with Hotjar

* Log in to your CustomFit dashboard.
* From the dashboard sidebar, click on **Settings > 3rd Party Integrations.**
* On the integrations page, you can see the **Hotjar** section.

<figure><img src="/files/2mEeIBkKe4nOsJ6r294f" alt=""><figcaption></figcaption></figure>

* Click on the status field to enable Hotjar integration.

<figure><img src="/files/yKPjvLBZrNXVYGmk1Ygj" alt=""><figcaption></figcaption></figure>

### Analyze recordings and heatmaps in Hotjar

* Log in to your Hotjar account.
* Click on the **dashboard** from the sidebar.

<figure><img src="/files/idiJyTJcuByMmBDRAyA6" alt=""><figcaption></figcaption></figure>

* Then click on the **Add Filter** button.

<figure><img src="/files/wapas0z9Q6MkGs0iBJD5" alt=""><figcaption></figcaption></figure>

* From the list of options available click on the **event**.

<figure><img src="/files/CovA6cflg0yxhwm48FK8" alt=""><figcaption></figcaption></figure>

* From the event drop-down, select **is any of these** options. From the next dropdown, select the required experience behavior and click on the **Apply** button.

<figure><img src="/files/4DIEedjFjbwEaRl93L6t" alt=""><figcaption></figcaption></figure>

{% embed url="<https://youtu.be/Fb4jUSFQy-Q>" %}


# Clearbit Integration

Clearbit is a web-enabled marketing software that gathers information about people and companies.&#x20;

Integrating CustomFit.ai and Clearbit will help your website to:

* Automatically display customer company details.
* Customize the use case based on the organization name, sector, and industry type

Follow the below steps to integrate CustomFit.ai with Clearbit :

* Log in to the dashboard and click on settings from the sidebar

![](/files/-MWcGYWHdBldp_2T2V8F)

* Click on 3rd Party Integrations

![](/files/-MWcGCtcpJX3p3vj7BVR)

* On the integrations page, you can see the Clearbit section

![](/files/-MWcsBGTVl9MZu8SWTM3)

* Click on the status field to enable Clearbit Integration

![](/files/-MWcsf3hGm3MzDPygilN)

* Now Login to Clearbit and Go to the Dashboard, In the API Menu Copy the "secret API key"

![](/files/-MWcJgUTCbosk83T9Bq_)

* In the Clearbit section, you can see the Settings button. Click on it.&#x20;

![](/files/-MWcsk6Btuaey7LGu9qQ)

* Paste the copied secret API key in the "**Secret API key**" field. And also fill the other two fields based on your requirements
  * **Cache timeout in minutes**: The minimum is 1 minute and the maximum is 43200 minutes. The cache time specifies the duration of how long the CustomFit can cache the IP address to firmographic details to avoid API call to Clearbit for the request coming from the same IP. This will speed up the personalization time
  * **Skip fuzzy results**: True/False. Indicates if Clearbit achieved an exact match. If the value is set to true then CustomFit will attach the Clearbit properties to the visitors only if it is an exact match. And if it is set to false then CustomFit won't attach the Clearbit properties to the visitors

![](/files/-MWdX7iQJbA5MhmNJe3a)

* Click on the Save button once all the details are filled

![](/files/-MWdXVhZiQKtAixG4DzY)

�


# 6sense Integration

6sense provides predictive insights into prospective buyers, analyzing their needs and predicting behavior throughout the buyer journey. Integrating 6sense with CustomFit enables personalized content delivery based on company attributes and segments, such as conducting A/B tests for users from targeted companies identified by 6sense.

Follow the below steps to integrate CustomFit.ai with 6sense:&#x20;

* Log in to the dashboard and click on settings from the sidebar
* Click on 3rd Party Integrations
* On the integrations page, you can see the 6sense section

<figure><img src="/files/qjwLEPexiOTpdel5rQlO" alt=""><figcaption></figcaption></figure>

* Click on the status field to enable 6sense Integration

<figure><img src="/files/A7BwSXQ99YcVxDihCc4C" alt=""><figcaption></figcaption></figure>

* Now log in to 6sense and  Copy the "API key"
* In the 6sense section, you can see the Settings button. Click on it

<figure><img src="/files/KcgrFdLJe9Kunvn5LEkS" alt=""><figcaption></figcaption></figure>

* Paste the copied API key in the "**API key**" field

<figure><img src="/files/kbpLd9yWvzUPS69R6LkO" alt=""><figcaption></figcaption></figure>

* Specify the cache timeout in minutes. The cache time specifies the duration of how long the CustomFit can cache the IP address to firmographic details to avoid API call to 6sense for the request coming from the same IP. This will speed up the personalization time. The minimum is 1 minute, and the maximum is 43200 minutes.

<figure><img src="/files/gWoEOe0Jnw3wH54CeWW2" alt=""><figcaption></figcaption></figure>

* Click on the Save button once all the details are filled

<figure><img src="/files/LOqITzmUjoFuVZUx7oYb" alt=""><figcaption></figcaption></figure>

<br>


# Segment Integration

Segment collects, cleans, and controls your visitor data/event within a reliable infrastructure. You can integrate your CustomFit account with Segment to have your CustomFit experiences and behaviours pushed as custom events in Segment.

### Prerequisites

* A Segment account that is currently active
* Your webpage should have both the CustomFit code snippet and the Segment analytics code.

### Integrating CustomFit with Segment

* Log in to your CustomFit dashboard.
* From the dashboard sidebar, click on **Settings > 3rd Party Integrations.**
* On the integrations page, you can see the **Segment** section.

<figure><img src="/files/r1VD9NDQ3ECK5O5tA6Lf" alt=""><figcaption></figcaption></figure>

* Click on the status field to enable Segment integration.

<figure><img src="/files/kJIhadqDXEYUR408qKD3" alt=""><figcaption></figcaption></figure>

### Validating integration

Once the integration is configured, you can validate that your experience behavior data is being transmitted to Segment.

* Log in to your Segment account.
* Click on **Sources** under Connections in the sidebar.

<figure><img src="/files/LnS1dHLUAf4N74jxgOnw" alt=""><figcaption></figcaption></figure>

* Then click on the source installed on your website.

<figure><img src="/files/rNG0dECy50icZIo0J1Hh" alt=""><figcaption></figcaption></figure>

* To view a list of all the events the source has received, select the **Debugger** tab.

<figure><img src="/files/lmxQWx3r9AtDPWDthwcB" alt=""><figcaption></figcaption></figure>

* Under the Debugger tab, you can see an event by the name **CustomFit Experience Viewed**. Click on this event to see the experience and behavior details.

<figure><img src="/files/w3XoYEwbCRkh2imRVGVj" alt=""><figcaption></figcaption></figure>


# Mixpanel Integration

Mixpanel is an event analytics platform that allows anyone to get answers from their customers and revenue data in seconds. You can integrate your CustomFit account with Mixpanel to have your CustomFit experiences and behaviours pushed as custom events in Mixpanel.

### Prerequisites

* A Mixpanel account that is currently active
* Your webpage should have both the CustomFit code snippet and the Mixpanel analytics code.

### Integrating CustomFit with Mixpanel

* Log in to your CustomFit dashboard.
* From the dashboard sidebar, click on **Settings > 3rd Party Integrations.**
* On the integrations page, you can see the **Mixpanel** section.

<figure><img src="/files/goVQzqeLRVOJhzHhJlCc" alt=""><figcaption></figcaption></figure>

* Click on the status field to enable Mixpanel integration.

<figure><img src="/files/TTUXmYW3qiAET0Ji5Sow" alt=""><figcaption></figcaption></figure>

### Validating integration

Once the integration is configured, you can validate that your experience behavior data is being transmitted to Mixpanel.

* Log in to your Mixpanel account.
* To view a list of all the events the account has received, select the **Events** tab.

<figure><img src="/files/fB5nFViPSZDvffuqo7xp" alt=""><figcaption></figcaption></figure>

* Under the **Events** tab, you can see an event by the name **CustomFit Experience Viewed**. Click on this event to see the experience and behavior details.

<figure><img src="/files/wiHnk6FP04r9YrPAKeT7" alt=""><figcaption></figcaption></figure>

### Reports in Mixpanel

To filter the reports, perform the below steps:

* Log in to your Mixpanel account.
* Under the **Reports** tab, click on the **Insights** option.

<figure><img src="/files/g7Pm44o9qxIfwuoOiH2p" alt=""><figcaption></figcaption></figure>

* Then click on the **Select Event** option. And search for the **CustomFit Experience Viewed** event.

<figure><img src="/files/o2pAa2M6Cle188BJyeeZ" alt=""><figcaption></figcaption></figure>

* Then click on the **Filter** option.

<figure><img src="/files/f9GMGOivEenAA9UgDkrB" alt=""><figcaption></figcaption></figure>

* From the event properties, select the required property to filter. For example, if you want to filter the report based on experience behavior then select **experience\_behavior**.

<figure><img src="/files/mQNy6Ws3VzuLOUTeQS7k" alt=""><figcaption></figcaption></figure>

* Then, from the dropdown, select the value for the selected event property and click on the Add button.

<figure><img src="/files/d5VoIpQBZUqHDEVa6EfX" alt=""><figcaption></figcaption></figure>


# Amplitude Integration

Amplitude is a digital analytics platform that gives self-service visibility into the entire customer journey. You can integrate your CustomFit account with Amplitude to have your CustomFit experiences and behaviours pushed as custom events in Amplitude.

### Prerequisites

* A Amplitude account that is currently active
* Your webpage should have both the CustomFit code snippet and the Amplitude analytics code.

### Integrating CustomFit with Amplitude

* Log in to your CustomFit dashboard.
* From the dashboard sidebar, click on **Settings > 3rd Party Integrations.**
* On the integrations page, you can see the **Amplitude** section.

<figure><img src="/files/JnbUBJKlG454A02F8sqA" alt=""><figcaption></figcaption></figure>

* Click on the status field to enable Amplitude integration.

<figure><img src="/files/ec0zSYqs7eoFRg0gcHiB" alt=""><figcaption></figcaption></figure>

### Validating integration

Once the integration is configured, you can validate that your experience behavior data is being transmitted to Amplitude.

* Log in to your Amplitude account.
* Click on the **Data** tab.

<figure><img src="/files/kLjFHBogA0LfvC1g3Ae5" alt=""><figcaption></figcaption></figure>

* To view a list of all the events the account has received, select the **Events** option.

<figure><img src="/files/ezG75Ye5lxX51VEmOOXP" alt=""><figcaption></figcaption></figure>

* Under the **Events** tab, you can see an event by the name **CustomFit Experience Viewed**. Click on this event to see the experience and behavior details.

<figure><img src="/files/Rxo348r8XrbfHhiwSj0s" alt=""><figcaption></figcaption></figure>

### Reports in Amplitude

To filter the reports, perform the below steps:

* Log in to your Amplitude account.
* Click on the **Create** button.

<figure><img src="/files/Ife6ZIxUwEGTe2Hrz5n0" alt=""><figcaption></figcaption></figure>

* Then, click on the **Segmentation** option.

<figure><img src="/files/KfTblhMGbIyjVykCz3mB" alt=""><figcaption></figcaption></figure>

* Click on the **Add Events** option and search for the **CustomFit Experience Viewed** event.

<figure><img src="/files/Z9Jd7ISW0MeTSdhYPwL4" alt=""><figcaption></figcaption></figure>

* Next, click on the **Filter by** option to filter the events based on the experience behavior data.

<figure><img src="/files/v8pIRtB3YqcGiBDW28jN" alt=""><figcaption></figcaption></figure>

* From the event properties, select the required property to filter. For example, if you want to filter the report based on experience behavior then select **experience\_behavior**.

<figure><img src="/files/9NQtx51frrKf5sX3YjZY" alt=""><figcaption></figcaption></figure>

* Then, from the dropdown, select the requried value and click on the **Apply** button.

<figure><img src="/files/KFNb3hjBQEX8SYwxMkAx" alt=""><figcaption></figcaption></figure>


# Heap Integration

Heap is a digital insights platform that gives you a complete understanding of your customers’ digital journeys, so you can quickly improve conversion, retention, and customer delight. You can integrate your CustomFit account with Heap to have your CustomFit experiences and behaviours pushed as custom events in Heap.

### Prerequisites

* A Heap account that is currently active
* Your webpage should have both the CustomFit code snippet and the Heap analytics code.

### Integrating CustomFit with Heap

* Log in to your CustomFit dashboard.
* From the dashboard sidebar, click on **Settings > 3rd Party Integrations.**
* On the integrations page, you can see the **Heap** section.

<figure><img src="/files/KB41y0JCVGDdpqSgoX6w" alt=""><figcaption></figcaption></figure>

* Click on the status field to enable Heap integration.

<figure><img src="/files/Iz0xPD7nCZyxY4O4VOnB" alt=""><figcaption></figcaption></figure>

### Validating integration

Once the integration is configured, you can validate that your experience behavior data is being transmitted to Heap.

* Log in to your Heap account.
* Click on the **Data** option from the sidebar.

<figure><img src="/files/4y072RaDXOAe4SC2jNEM" alt=""><figcaption></figcaption></figure>

* Next, click on the **Live data feed** option.

<figure><img src="/files/AGMqiVNd9SV63seS2hPU" alt=""><figcaption></figcaption></figure>

* If you see the **CustomFit Experience Viewed** events then your Heap account is successfully receiving events from CustomFit.

<figure><img src="/files/sCKdik6gSrM6hxggejfs" alt=""><figcaption></figcaption></figure>

### Reports in Heap

To filter the reports, perform the below steps:

* Log in to your Heap account.
* Click on the **Data** option from the sidebar.

<figure><img src="/files/4y072RaDXOAe4SC2jNEM" alt=""><figcaption></figcaption></figure>

* Next, click on the **Labeled events** option.

<figure><img src="/files/mF84pkY20Pdd17FPqNkt" alt=""><figcaption></figcaption></figure>

* Create a new label by clicking on the **Label event or property** button and then choosing the E**vent** option from the dropdown.

<figure><img src="/files/qCFnl4MEAiWQxvF5v4hY" alt=""><figcaption></figcaption></figure>

* Select the **category** as **Custom Events**.

<figure><img src="/files/xYWGnAqp3f6BFOj61izm" alt=""><figcaption></figcaption></figure>

* Next, give the **name** as **CustomFit Experience**. Then, select the **source** as **Custom**. Finally choose the **CustomFit Experience Viewed** event and click on the **Label event** button. This will label all the CustomFit experiences irrespective of the experience behaviors.

<figure><img src="/files/ct366XWtmKPnePilKsEt" alt=""><figcaption></figcaption></figure>

* If you want to label events specific to a particular experience behavior then click on the **Add filter** option.&#x20;

<figure><img src="/files/O2CfWuo6iPfoK3BSWMAl" alt=""><figcaption></figcaption></figure>

* Next, from the **property** dropdown choose the **expereince\_behavior** option.

<figure><img src="/files/9WCptwjHYUAqV6oiSng1" alt=""><figcaption></figcaption></figure>

* Next, select the **operator** type as **equals** and select the required experience behavior value from the dropdown. Finally click on the **Label Event** button to create a label.&#x20;

<figure><img src="/files/jH8kz1QO6MRhaHJ6lj1m" alt=""><figcaption></figcaption></figure>

* Once the label has been created you can see the summary of the labelled events.

<figure><img src="/files/jeRZYc0ypl5VRrgteFPq" alt=""><figcaption></figcaption></figure>

* If you want to create a Heap Segements then click on the **Segments** option.

<figure><img src="/files/wLTIB9Rd4FiPX8RRsOZo" alt=""><figcaption></figcaption></figure>

* Next, click on the **Define segment** button.

<figure><img src="/files/6PT2PBgMBuYAzcGX9hzl" alt=""><figcaption></figcaption></figure>

* Select the **Category** as **Custom Events**.

<figure><img src="/files/Y3SwqOUDX0qFd37ToC8t" alt=""><figcaption></figcaption></figure>

* Give the segment name as CustomFit Experience Behavior. Alternatively, you can specify any name that would identify the segment—for instance, the name of an experienced behaviour. Then click on the **Add filter** option.&#x20;

<figure><img src="/files/XYZo3a5EsHDj4ItJmVJj" alt=""><figcaption></figcaption></figure>

* Under the **Edit segment criteria** click on the property option and **choose users who have done** from the dropdown.&#x20;
* Then, from the event dropdown select the required **event**. For example, CustomFit Experience behavior.&#x20;
* Then, specify the **time range** and click on the **Label segment** button.&#x20;

<figure><img src="/files/CnOglngtJc0PWoDuquCb" alt=""><figcaption></figcaption></figure>


# Salesforce

Salesforce is a customer relationship management solution that brings companies and customers together.&#x20;

Follow the below steps to integrate CustomFit.ai with Salesforce:

* Log in to the dashboard and click on settings from the sidebar

![](/files/-MXBVC1uhj1qvINfEaka)

* Click on 3rd Party Integrations

![](/files/-MXBVKAY3YkTblvWeH_H)

* On the integrations page, you can see the Salesforce section

![](/files/-MXBVb99NMVwNqLp1nAI)

* Click on the status field to enable Salesforce Integration

![](/files/-MXGPME8I5oHXrAhlk2Q)

* You need consumer key, consumer secret and instance URL . Follow the below steps to get these values

![](/files/-MXGOunRW629EJF0NJ49)

* Login to the Salesforce account by providing the credentials

![](/files/-MXGMIVstzhZYbNdaYuV)

* You need to create a connected app. [Click here](https://doc.customfit.ai/integrations/salesforce/connected-app) to know how to create a connected app.
* After the successful creation of the connected app you can find the Consumer Key and Consumer Secret.

![](/files/-MX_fx-9-nBlQ8GqBwne)

* Copy and paste the consumer key and consumer secret from the connected app and enter the instance URL(URL visitor to login to your salesforce account). For example : <https://customfit-dev-ed.my.salesforce.com/>

![](/files/-MXGMZEZvxOBD5FCyYjB)

* Click on the Connect button, once all the details are filled

![](/files/-MXGMtY_AD2ldv1pfIAO)

* &#x20;Now in order for CustomFit to keep the data updated with the Salesforce data, you need to create an Apex class. [Click here](https://doc.customfit.ai/integrations/salesforce/apex-class) to learn how to create an Apex Class
* Now you need to create different triggers whenever there is any change in the Salesforce Contact, Lead or Account data. [Click here](https://doc.customfit.ai/integrations/salesforce/apex-triggers) to learn how to create different triggers
* Finally, configure the Remote Site Settings from [here](https://doc.customfit.ai/integrations/salesforce/remote-site-settings).&#x20;
* In-case if the Salesforce integration fails, Click on Go back button, which will take you back to integrations page and then retry. If the problem persists, then reach out to CustomFit support

![](/files/-MXGTti7xpqjhpdsSUgG)

*


# Connected App

A **connected app** is a framework that enables an external **application(CustomFit)** to integrate with **Salesforce** using APIs and standard protocols. **Connected apps** use these protocols to authenticate, authorize, and provide single sign-on (SSO) for external **apps(CustomFit)**.� You can know more about Salesforce connected app [here](https://help.salesforce.com/articleView?id=sf.connected_app_overview.htm\&type=5). To Create a Connected app

* Click on settings icon

![](/files/-MXYeMJC9N4BIlcOXR1-)

* Then click on Setup option from the dropdown

![](/files/-MXYitqDQmdtFaPuhoRx)

* Search for App Manager option and click on it

![](/files/-MXXfWWbe1dsqN7RyMiF)

* Click on New Connected App

![](/files/-MXXfcdEaAPDKuT1r61k)

* Then provide the basic information
  * Connected App Name: CustomFit App
  * API Name: CustomFit\_App
  * Contact Email: <abc@example.com>

![](/files/-MXYgx3xUAtFvDWaBiVa)

* Then enable the OAuth Settings

![](/files/-MXYgfrxohkE4tcAFBZR)

* Provide the Callback URL as <https://dashboard.customfit.ai/integrations/salesforce>

![](/files/-MXYhGLu3wNTr-66gc-j)

* Under OAuth scopes add the following OAuth Scopes
  * Access your basic information
  * Access and manage your data
  * Provide access to your data via the web
  * Perform requests on your behalf at any time

![](/files/-MXYi3gKdkxZdcED6mdc)

* Then click on Save button

![](/files/-MXYiPBRu5jSn7NYHA4a)


# Apex Class

You can know more about Apex class [here](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_dev_guide.htm). To Create an Apex Class

* Click on settings icon

![](/files/-MXYie9g0exx2OM2U_Jc)

* Then click on Setup option from the dropdown

![](/files/-MXYj0n9LyhiRAM_Qxns)

* Search for Apex Classes option and click on it

![](/files/-MXXfqhyorewCdeU82VB)

* Click on New button

![](/files/-MXYjUnecx65udp3Uzm8)

* Copy and paste the below code snippet. The code snippet checks the Salesforce data and if there is any change/update in the customer information then it updates to CustomFit

```
public class CustomFitWebHook {
    
  public static String jsonContent(List<Object> triggerNew, List<Object> triggerOld) {
    String newObjects = '[]';
    if (triggerNew != null) {
      newObjects = JSON.serialize(triggerNew);
    }
    String oldObjects = '[]';
    if (triggerOld != null) {
      oldObjects = JSON.serialize(triggerOld);
    }
    String userId = JSON.serialize(UserInfo.getUserId());
    String instanceURL = JSON.serialize(URL.getOrgDomainUrl().toExternalForm());


    String content = '{"new": ' + newObjects + ', "old": ' + oldObjects + ', "userId": ' + userId + ', "instanceURL": ' + instanceURL + '}';
    return content;
  }
  @future(callout=true) public static void callout(String content) {
    Http h = new Http();
    HttpRequest req = new HttpRequest();
    req.setEndpoint('https://api.customfit.ai/v1/salesforce/webhooks');
    req.setMethod('POST');
    req.setHeader('Content-Type', 'application/json');
    req.setBody(content);
    h.send(req);
  }
}

```

* Click on Save button

![](/files/-MXYk2mqj5rtSUwrbbwh)


# Apex Triggers

**Apex triggers** enable you to perform custom actions before or after events to records in **Salesforce**, such as insertions, updates, or deletions.� You can know more about Apex triggers [here](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_triggers.htm). You need to create three different triggers

1. **Contact Trigger** - If there is any change to the Contact then contact trigger will be invoked
2. **Lead Trigger** - If there is any change to the Lead then lead trigger will be invoked
3. **Account Trigger** - If there is any change to the Account then account trigger will be invoked

To create a trigger follow the below steps

* Click on settings icon

![](/files/-MX_RnlFgv1GEnxN4TpC)

* Then click on Setup option from the dropdown

![](/files/-MX_Rrt76Hq96EiiQE7o)

* Search for Apex Triggers option and click on it

![](/files/-MXXg0NQ6JHQsqMXoZzG)

* Click on Developer Console button

![](/files/-MX_SRSXOTn9J3PxdJJi)

* In the developer Console click on File
* Click on New and Select the Apex Trigger option

![](/files/-MX_TIyNyVNH8VxFvB1L)

* For the Contact Trigger give the&#x20;

  * Name as ContactTrigger
  * For sObject select Contact from the dropdown

![](/files/-MX_a-v-z_ZJnB7_40LH)

* Then paste the below code

```
trigger ContactTrigger on Contact (after insert,after update,after delete) {
    CustomFitWebHook.callout(CustomFitWebHook.jsonContent(Trigger.new, Trigger.old));
}
```

* Atlast save the code
* For the Lead Trigger give the&#x20;

  * Name as LeadTrigger
  * For sObject select Lead from the dropdown

![](/files/-MX_cOITJVJWMrZ8XWRt)

* Then paste the below code

```
trigger LeadTrigger on Lead (after insert,after update,after delete) {
    CustomFitWebHook.callout(CustomFitWebHook.jsonContent(Trigger.new, Trigger.old));
}

```

* Atlast save the code
* For the Account Trigger give the&#x20;

  * Name as AccountTrigger
  * For sObject select Account from the dropdown

![](/files/-MX_crFga9zhUrTNbS0J)

* Then paste the below code

```
trigger AccountTrigger on Account (after insert,after update,after delete) {
    CustomFitWebHook.callout(CustomFitWebHook.jsonContent(Trigger.new, Trigger.old));
}

```

* Atlast save the code


# Remote Site Settings

To create a **Remote Site Settings** follow the below steps:

* Click on settings icon.

<figure><img src="/files/Cnqiiaq3Qg7bWAgB00sl" alt=""><figcaption></figcaption></figure>

* Then click on Setup option from the dropdown.

<figure><img src="/files/UM9m8omLXMrh0gIihAK0" alt=""><figcaption></figcaption></figure>

* Search for Remote site settings option and click on it.

<figure><img src="/files/skJpRgkPIYtwsB4wKgOj" alt=""><figcaption></figcaption></figure>

* Click **New Remote Site**.
* Enter the Remote Site Name as CustomFitAi
* Give the Remote Site URL as <https://api.customfit.ai>

<figure><img src="/files/SFW3CfoLTUWrG34Tc9gm" alt=""><figcaption></figcaption></figure>

* Finally click on the **Save** button.


# Kickfire

Integrating CustomFit.ai and Kickfire will help your website to:

* Automatically display customer company details.
* Customize the use case based on the number of employees, revenue, etc.

Follow the below steps to integrate CustomFit.ai with Kickfire :

* Log in to the dashboard and click on settings from the sidebar

![](/files/-MWcGYWHdBldp_2T2V8F)

* Click on 3rd Party Integrations

![](/files/-MWcGCtcpJX3p3vj7BVR)

* On the integrations page, you can see the Kickfire section

![](/files/-MWd-uqx4doSnXIhV1_R)

* Click on the status field to enable Kickfire Integration

![](/files/-MWd-zHz4BdyfF1TDIcu)

* Now Login to Kickfire, In the API Menu Copy the "API key"

![](/files/-MWd07n3kFjWl9qlRMfK)

* In the Kickfire section, you can see the Settings button. Click on it

![](/files/-MWd0Dcvwkg3Z6rVF3s7)

* Paste the copied API key in the "**API key**" field. And also specify the cache timeout in minutes
  * **Cache timeout in minutes**: The minimum is 1 minute and the maximum is 43200 minutes. The cache time specifies the duration of how long the CustomFit can cache the IP address to firmographic details to avoid API call to Kickfire for the request coming from the same IP. This will speed up the personalization time

![](/files/-MWdWpWLmzwdfciCZyin)

* Click on the Save button once all the details are filled

![](/files/-MWdWu1algeaX7YRp1sR)


# HubSpot

**HubSpot** is an inbound marketing and sales platform that helps companies to attract visitors, convert leads and close customers.

Integrating CustomFit.ai and HubSpot will help your website to:

* Display the company and contact details
* Personalize the website based on the Lifecycle stage
* Personalize the website based on the Lead Status and so on

Follow the below steps to integrate CustomFit.ai with HubSpot :

* Log in to the dashboard and click on settings from the sidebar

![](/files/-MXBVC1uhj1qvINfEaka)

* Click on 3rd Party Integrations

![](/files/-MXBVKAY3YkTblvWeH_H)

* On the integrations page, you can see the HubSpot section

![](/files/-MXBZyzFmotyhalbfOG4)

* Click on the status field to enable HubSpot Integration

![](/files/-MXB_7UCLSZiMrFK86GB)

* You will be redirected to the HubSpot login page. Enter your credentials and click on Login &#x20;

![](/files/-MXCDJLVaVdhqSKlM00U)

* Select your account

![](/files/-MXCKOS2MOankYFJ0SFS)

* CustomFit App requires the following permissions
  * Contacts
  * Basic OAuth functionality
  * Forms
* Then click on Connect app button to connect CustomFit with Hubspot

![](/files/-MXCM6jrefdhA6YmLo2n)

* On Successful integration you will be redirected to the integrations page

![](/files/-MX_uEqF_vCdZzePii2g)

* In-case if the Hubspot integration fails and if you wish to retry then click on Retry button

![](/files/-MXCNyEeiLJ9pucFqTr3)

* If you want to know in which other environment your Hubspot account has been integrated then reach out to CustomFit support. Click on Go back button which will take you back to integrations page

![](/files/-MXCO9zMu8L2zSou6X3S)

* In the Hubspot section, you can see the Settings button. Click on it

![](/files/-MXBiqJM_nU1V9OLVtWz)

* The visitor can provide the permission to update few of the Hubspot properties and select the checkbox inorder to allow the CustomFit to update the Hubspot properties

![](/files/-MXCIWk46LF9tmQUPT1S)

* Once the visitor clicks on save, only those properties specified by the visitor will be updated by CustomFit.ai

![](/files/-MXCJ8pnkoHCMdm2Y9Qm)


# Slack

It’s very easy to set up Slack in CustomFit.ai. All you’ll need are your Slack login credentials, and permission to install the app.

### Enable Slack in CustomFit.ai

To receive Slack alerts and reports, you need to enable the Slack in CustomFit.ai dashboard—essentially inviting CustomFit.ai to your Slack workspace as a bot. When you configure Slack, you need to provide Slack credentials, letting CustomFit.ai post to your Slack workspace

* From your dashboard, go to **Settings** and click **3rd Party Integrations**
* From here, you can enable or disable Slack integration. Click **Enable** to get started

![](/files/-Mka3Y3FyFvVghzwdV9Q)

* If you aren’t logged in to Slack, log in. If you have multiple work-spaces, you’ll need to select the workspace that you want to receive Slack alerts and reports

![](/files/-MkDTa4AHniBt4hUN8Hw)

* Click **Allow**. Your dashboard will show that Slack is enabled

![](/files/-Mka39ef6TxnSMH3xxgC)

### Switch to different WorkSpace

Disable the Slack integration and again enable it. You'll be redirected to the Slack page where you can add/change the WorkSpace

![](/files/1OT9t1SO1Y1PZ6wMJflb)

{% embed url="<https://youtu.be/NQkX94qGbAI>" %}
Slack Integration
{% endembed %}

**Refer here for our privacy poilcies**&#x20;

{% embed url="<https://www.customfit.ai/privacy-policy>" %}


# Split URL Testing

Split URL Testing is a method used to compare two versions of the page to determine which page is performing better. For example, if you want to redirect 50% of the users from Page a to Page b to see which page performs better. Here are the steps to be followed for conducting the split url testing in this scenario:

* Create an experience
* Enter the URL's of two pages you want to test. One URL will be the original page(Page A) and the other URL will be the redirection URL(Page B)
* Create a behavior
* Click on the open visual editor and choose the Page A
* Click on **\</>**&#x20;

<figure><img src="/files/ACb8AXDMVXIR3BoylGlM" alt=""><figcaption></figcaption></figure>

* Choose the Redirection/Split url option

<figure><img src="/files/IJUVrDgEiyDVGzrQNnju" alt=""><figcaption></figcaption></figure>

* Provide the Page B URL to which you want the customer to be redirected and then click on Save Changes

<figure><img src="/files/aVcnF2kv5LGKRkPLCTxH" alt=""><figcaption></figcaption></figure>

* Click on Finalize and Exit&#x20;
* If you need to make any change to Page B then click on open visual editor and choose the Page B. Make the necessary changes to the Page B. Click on Finalize and Exit
* Once everything is done, split the traffic as 50%-50% between Page A and Page B

**Reference loom video:**

<https://www.loom.com/share/edff860c81d946b0adf098a5cd6d963d?sid=b04e8f6a-5d95-4e90-b802-5d19a41b479f>

{% embed url="<https://www.loom.com/share/ec8732ee4b7b4545b4243b8854b1ffc5?sharedAppSource=personal_library>" %}

**Personalize the Redirection/ Split URL**

[**https://www.loom.com/share/80fd39e7d41748a3b26713bd53e65968?sid=9bad14ad-498c-498e-a976-851822092652**](https://www.loom.com/share/80fd39e7d41748a3b26713bd53e65968?sid=9bad14ad-498c-498e-a976-851822092652)

{% embed url="<https://www.loom.com/share/80fd39e7d41748a3b26713bd53e65968?sid=9bad14ad-498c-498e-a976-851822092652>" %}


# Create Report

CustomFit Reports has a library of predefined templates that are already connected to multiple sources of data like analytics, CRM, and other third-party tools.  It allows you to stay informed about the important metrics and get instant alerts directly to your preferred slack channels.&#x20;

For example, you will find templates to help you track active visitors, monitor acquisition funnels, observe page engagement levels, funnel analysis from lead to customers, and templates to alert when an ICP visitor or existing lead revisit the website.

Login to the dashboard and click on Reports from the left sidebar

![](/files/TEClQl4TooEg5CDfsjKB)

Select any one of the templates from the list of ready-to-use templates and click on "Use Template".

![](/files/o0td726twSV5olVIpAYh)

Click on Create Report

![](/files/ajZN7zU8oBTVnkGoVUaL)

Enter the Report Name and click on Next

![](/files/Ro43efFfivg3SQMwI81e)

Select the slack channel or multiple channels where you want to receive an alert and click on Next

![](/files/lJ6Jz2X9uMDVEJ3rPQ2c)

IF you want to target a set of audiences, then create a new segment or choose the existing segment from the dropdown menu and add the rules that suit your needs, and click on Next.

![](/files/npHZ690jb0056BYyYfau)

Configure the report alerts based on your requirements whether you want to receive daily/weekly/monthly alerts and set the timing. Click on Finish.

![](/files/sapo7T2ONd5PLzpjBzyk)

{% hint style="info" %}
By default weekly alert is set on Monday and a monthly alert is set at the start of the month.

By default, reports are sent at 11:00 to the configured slack channel.
{% endhint %}

**Note: You will receive the alerts only if the status is enabled for that particular report**

![](/files/PW0z8WOoV3dIVQkFJYF6)

## Edit the Report Name

If you wish to update the report name then, click on the edit icon&#x20;

![](/files/gWWyOr9h5mFPFc1yygJv)

Edit the report name and click on Update

![](/files/2BdRd1ZTm177krhDGIF1)

## Delete the report

If you wish to delete any of the reports, click on the delete icon

![](/files/Bc72LNUj4zJcmT1f4I4Z)


# Configure Targets

Assign targets for self, team, and individuals. Get alerts when the target is met. In case the target is missed, see visual analysis of by what margin it missed.

Click on Configure to set the targets

![](/files/7Ma7Zi7ACdlL1mz1zthn)

Provide the target value and get the notification for the configured slack channel when the target is met.

![](/files/K4rTHI9iW0TwJBGxHfi8)

To edit the target value, click on edit settings

![](/files/sC16oNXI9wbDJspcDjaF)

Change the target values as per your requirements and click on update.

![](/files/HrxPL9O6SvBmbMOwdL6k)


# Configure Goals

## Add Goals to the Report

Click on configure to set the goal

![](/files/FSMU4lz4QhjvyZpRMmUN)

Choose the goal or multiple goals from the dropdown menu and click on Add

![](/files/uoFyWGpnuVsJ9MTghdYJ)

If you wish to add one more goal then click on Add Goal button and choose the goal from the dropdown menu.

![](/files/560ewr3LDta9to5x4VcG)

##


# Overview of Reports

Login to the dashboard and click on Reports from the left sidebar

![](/files/KuXQ63vsntNhKG16rdi5)

Select Custom Alerts templates from the list of ready-to-use templates and click on "Use Template"

![](/files/f0ALVi5ZOG1cOSnzQTNp)

Click on Create Report

![](/files/OJczmRhPYdkYT5FQs6oW)

Provide the report name and click on Next

![](/files/LyyL1ia2tSTDWmftUcsz)

Select the slack channel or multiple channels where you want to receive an alert and click on Next.

![](/files/CgqH55zvpzBATcIL4zzB)

Click on Create to create a new segment or choose the existing segment from the dropdown menu.

![](/files/uHrwLZh2gGadwCeDWE7d)

Once the segment is created, add a rule as per your requirements and click on Save Changes. Click on Next.&#x20;

For example: Click on the Desktop visitors button to add a basic rule with Device Type IS\_ONE\_OF Desktop

![](/files/iv7lyjdEPLJMltOIOVSZ)

Click on Get real-time alerts to get an instant alert to the configured slack channel and click on Finish.

![](/files/AxNypOBiTUIVpWTDz1Wi)

Visit your website and you can find an instant alert at the configured slack channel.

![](/files/9vAHXHChaMJF8nWiraQA)

{% embed url="<https://www.loom.com/share/61ee5fffa09a4228b3e33df2b6e26830>" %}


# Creating a Segment

Segments are different groups of visitors that are served with different experiences. You can create the segments based on certain rules that apply to the visitors. For example, one segment can be the visitors that are located in INDIA, another segment can be the visitors from USA.

**Creation of a Segment**

* Log in to the dashboard and navigate to the Segments page from the sidebar

![](/files/-MXqjbJ9uzMAG3LlLoU7)

* Click on "Plus" icon to create a segment.

![](/files/-MXqkP8oB2y5XY0D8CtY)

* Enter the following details:
  1. **Name:** A meaningful name for your segment that will allow you to easily locate it in the dashboard.
  2. **Description:** Briefly describe what this segment is about. This will help your team members to understand the segment's purpose.

![](/files/-MXqsiGlf5IDdwOzNG08)

* Once all the details are provided then click on the "Create" button

![](/files/-MXqsnh8xYS0-j167Y8K)


# Segment Rules

Once you have created a segment the next step is to add the rules or target individual visitor. If the visitor customer\_id is known and if you want to include or exclude them from the segment then click on "Add user targets" button.

![](/files/-MXqwH5pSZaWjzpa_3A8)

Enter the visitor customer\_id whom you want to include or exclude from the segment.

![](/files/-MXqx11cYeaV_dXVX9iZ)

Once all the details are filled you can add the rules for the segment

![](/files/-MXqy3Ib5htd6DMwxRis)

## Targeting visitors based on rules

To add the rules click on "Add rules"

![](/files/-MZCskFq1D4vBMGqShHJ)

Each rule has three parts:  an attribute, an operator and the value/s. For example, if you want to target a group of visitors from India then you can have a rule as Country  IS\_ONE\_OF  India

![](/files/-MZCtOLqK-_CF8nUmFVg)

A rule can have multiple conditions where the visitors need to satisfy all the conditions. For example, if you want to target a group of visitors from India and the device type is Desktop then you can have a rule as Country  IS\_ONE\_OF  INDIA and Device Type IS\_ONE\_OF Desktop

![](/files/-MZCwjLNpBRBCo576e5y)

Finally click on Save Changes button in order to apply the changes to the visitor segment

![](/files/-MZIttELeIJW1hjrtL7A)

Follow the below steps, which makes you to write the rules easier:

* To copy a rule, click on the copy icon above the rule&#x20;

![](/files/-MZCyKHNRfKUDvtWNFcl)

* To delete a rule, click on the delete icon above the rule&#x20;

![](/files/-MZCzcXBMI_w0LyDCCV9)

* To add a new rule click on the Add  button

![](/files/-MZD-NNWEIEGWjkpBYem)

* To copy a condition, click on the copy icon beside the condition&#x20;

![](/files/-MZD-x_cl1bz2PIBCR3Q)

* To delete a condition, click on the delete icon beside the condition&#x20;

![](/files/-MZD04KCa2TriMhwf6xa)

* To add a new condition click on the "+" icon which is present beside the last condition

![](/files/-MZD0_J2L0Sz0wQNnChT)

* Once the segment has been created, you can use that segment in the experience rule engine to target a particular group of visitors.

![](/files/-MZIpUMxt2IE9HkvLxpH)

​


# Analytics

* Log in to the dashboard and navigate to the Dashboard from the sidebar

![](/files/-M_dzww5ZASaI8RnEQwS)

By default the data is displayed for the last 7 days. You can also select different days or select the custom date range.

![](/files/-M_ec_9U8AEm0cPTMdJG)

When you click on custom you need to select the From and To dates

![](/files/-M_ecucY1IkvuDuQFrtQ)

{% hint style="info" %}
FROM date cannot be greater than TO date

FROM date cannot exceed from the last 3months&#x20;

TO date cannot exceed from the current date
{% endhint %}

![](/files/-M_ej4FXLIhCJZt5nb0z)

1. Provides you the total number of sessions for the selected number of days
2. Provides you the total number of events triggered for the selected number of days
3. Provides you the number of unique visitors wo have visited your website for the selected range of days
4. New visitor is one who have not visited your website before and visiting for the first time. The 4th card provides you the number of new visitors wo have visited your website for the selected range of days
5. The graph shows you the total number of sessions, total events triggered, unique count of visitors and new visitors for the last 7,14,21,30 0r for selected range of dates. By default only the unique visitors graph is displayed

### **Dashboard Insights**

![](/files/-M_eth6DVm4EuqcEJs2Q)

* **Page Path:** It consists of the 10 event names which are of page type. On click of page path header sorting is done and displays Top/Last 10 page paths
* **Page Views: It consists of**&#x20;
  * **Total page views:** Total number of times the page has been viewed
  * **Unique page views:** Total number of times the page has been viewed by unique visitors.
* **Start Sessions:** Total number of times visitors started the session through this page.
* **Average Duration:** Average time spent by visitors on a specified page
* **Bounce Rate:** If a session starts and ends on the same page then it is considered as a bounce(Single page session). IT provides the number of single page sessions divided by the number of Start sessions.
* **Scroll Depth:** Average scroll depth by a visitors on a specified page when the device type is of Mobile/Desktop

At the bottom of the page you can find a  graph displayed based on website traffic for different content parameters such as UTM, Geography, Technology and Referrer. By default 7 days of traffic for top10 UTM source will be displayed.

![](/files/-M_fNj9qclbYHdwyPNEt)

If you want to know the cumulative values for the traffic based on top 10 UTM sources then enable the cumulative option

![](/files/-M_fRMsrlYprDYpnbWxh)

Select Last 10 option from the dropdown in order to see the last 10 values in the graph. For example: If you want to know the traffic from the last 10 OS names through which the visitor visited our website then, select OS Name from the Left dropdown under Traffic Based on  column and last 10 option from the right dropdown

![](/files/-M_fRkQxp1Aajb3qlurs)

If you want to know the cumulative values for the traffic based on top 10 OS names then enable the cumulative option

![](/files/-M_fScd2rvvwB95TLujL)

Select All option from the dropdown. For example: If you to know the traffic, based on all the device types then select All option. A table consisting of total number of sessions happened through different OS Names is displayed.

![](/files/-M_fT9RSz6MOQeIWfu1K)

Click on graph icon under the daywise count column. Daywise summary graph is displayed for the specific selected attribute. By default 7 days graph is displayed for 10entries. You can also choose different number of entries and number of days

![](/files/-M_f_4BKtKQBrXl-kac-)

For example: If you want to know the daywise summary graph for specific OS Name like Windows. Click on the graph icon for the windows and correspondingly the graph is displayed

![](/files/-M_fZPnR1EfizSyYsCi3)


# Track CustomFit-Influenced Orders in Shopify

This guide explains how to set up Shopify Flow so you can automatically tag orders influenced by CustomFit and then easily find those orders inside the Shopify admin.

### What this setup does

Once the workflow is installed and turned on, Shopify Flow will automatically add tags to orders based on the CustomFit experience or behaviour associated with them. You can then go to your Orders section in Shopify and filter orders using those tags. Shopify supports order tags and lets you filter orders by tagged orders from the admin.

### Before you begin

Make sure that:

* Your Shopify store is active, and you have access to the Shopify admin.
* CustomFit order tagging is already enabled on your store.
* You have permission to install apps in Shopify.
* You have the CustomFit Flow template file ready for import.

Shopify Flow is installed from the Shopify App Store and then accessed inside the Shopify admin.

### Step 1: Install Shopify Flow

Shopify Flow is Shopify’s automation tool that lets you run workflows based on store events such as order creation.

#### How to install

1. Log in to your Shopify admin.
2. Open the Shopify Flow app listing here:\
   **Shopify Flow app:** [https://apps.shopify.com/flow](https://apps.shopify.com/flow?utm_source=chatgpt.com)
3. Click **Install**.
4. Complete the installation steps in Shopify.

After installation, you can access Flow from your Shopify admin under **Apps > Flow**.

<figure><img src="/files/AQZAzPTc2cvzhHQkoIUY" alt=""><figcaption></figcaption></figure>

#### Step 2: Download and import the CustomFit workflow template

Follow the steps below

* Download the **CustomFit Order Influence Tagger** template from [here](https://cdn.customfit.ai/assets/misc/CustomFit%20Order%20Influence%20Tagger.flow).
* In Shopify admin, go to **Apps > Flow**.
* Open Shopify Flow.
* Choose the option to **Import** a workflow.

<figure><img src="/files/OXyPkjNAZjCcBkUq2hKf" alt=""><figcaption></figcaption></figure>

* Upload the downloaded template file.

<figure><img src="/files/mbOb9ZFWHK4T5HtqKqq2" alt=""><figcaption></figcaption></figure>

* Wait for the workflow to appear inside Flow.

<figure><img src="/files/ddAlOyr9VcyZMmOqQFNA" alt=""><figcaption></figcaption></figure>

#### What to check after import

After the template is imported, confirm that:

* The workflow is visible in Shopify Flow
* The workflow name is **CustomFit.ai Experience Order Tagger**
* The workflow has been imported without any errors

#### Step 3: Activate the workflow

Importing the workflow alone is not enough. The workflow must be activated before Shopify Flow starts processing new orders. Shopify Flow lets merchants turn workflows on and off from within the app.

How to activate the workflow

* Open **Apps > Flow** in Shopify admin.
* Open the imported workflow named **CustomFit.ai Experience Order Tagger**.
* Review it once.
* Click **Turn on workflow**.

<figure><img src="/files/uQOdfGZdJ9kIG1CjSTzz" alt=""><figcaption></figcaption></figure>

* Make sure the workflow status shows as active.

<figure><img src="/files/rz8RYNsBxMYYtP3EtzrJ" alt=""><figcaption></figcaption></figure>

#### Step 4: How the workflow works

Once the workflow is active, it starts monitoring newly created orders.

#### What happens in the workflow

When a new order is created:

1. The workflow checks the order for CustomFit experience data.
2. If the required CustomFit information is present, the workflow prepares one or more tags.
3. Those tags are added to the Shopify order automatically.

Shopify Flow includes an **Add order tags** action specifically for this purpose.

Example

If a shopper places an order after interacting with a CustomFit experience, the order may be tagged with a CustomFit-related tag. This makes it easier for your team to later search and review those influenced orders from Shopify admin.

#### Step 5: View CustomFit-influenced orders in Shopify

Once tagged orders start coming in, you can view them from the **Orders** section in Shopify admin. Shopify allows order lists to be filtered by tags.

* Log in to your Shopify admin.
* Go to **Orders**.

<figure><img src="/files/3kmnT8xo9JrKUwzb6tDJ" alt=""><figcaption></figcaption></figure>

* Click the search or filter area and select the Tagged with from the dropdown options.

<figure><img src="/files/hBNR1ku86DHvSQuP7Zpq" alt=""><figcaption></figcaption></figure>

* Enter the tag value you want to filter by. For example, CustomFit\_Price\_fixes\_1\_v1

<figure><img src="/files/uedzSN6BWnvRHL4Qg6t6" alt=""><figcaption></figcaption></figure>

* Apply the filter.

<figure><img src="/files/RArnpHzVNNU1S1x81f0Z" alt=""><figcaption></figcaption></figure>

You should now see the list of orders that were tagged by the CustomFit workflow.

#### Step 6: Save a filtered view for faster access

If your team wants to regularly review influenced orders, you can save the filtered order view in Shopify.&#x20;

Shopify supports saving filtered order views for repeated use.

#### How to save the view

* After applying the CustomFit tag filter in **Orders**, click **Save**.

  <figure><img src="/files/mb2Fyme4ZanmTINtbQ8f" alt=""><figcaption></figcaption></figure>
* Give the view a clear name, such as: CustomFit-Influenced Orders

<figure><img src="/files/X2ZBCjfNGnOZtHCZT6Vh" alt=""><figcaption></figcaption></figure>

* Save the view.

This makes it easier to revisit the same filtered list later.


# Install the CustomFit snippet

To provide different experiences to your visitors you need to install a CustomFit code snippet. The code snippet consists of a unique id that allows CustomFit servers to interact with your website. The code snippet recognizes the changes made on the website and renders the page accordingly to the visitors.

### Copy your CustomFit code snippet

* In your CustomFit account from the sidebar click on the **`settings`** option.
* Then click on **`CustomFit Setup`** option.
* From the snippet, section click on **`Copy`** button.

![](/files/UX1sS53scawg5TT1Okqd)

### Installing the CustomFit Snippet

To install the CustomFit code snippet, paste the code at the top of the **HEAD** tag on every page you wish to personalize and track pages/goals.

After the code has been installed and to verify the installation click on the **`Test`** button.&#x20;

If you're using a specific content management system then the below section might be helpful.

### Installing the CustomFit Snippet on a WordPress Site

* Login to your WordPress account.
* Install the plugin: Header and Footer.
* Go to the configuration panel of the plugin.
* Under the "Page head and footer" tab, add the tracking code to the section which says "Code to be added to the HEAD section of every page":
* Go to "Appearance", then "Editor", then "header.php”
* Search for \<head>.
* Paste the tracking code after the \<head> tag.
* Save the code by clicking "Update File”.

### Installing the CustomFit Snippet on a Wix Site

* Log in to your Wix account.
* Click on settings from the sidebar.

![](/files/3iEMF9EdBLKFqEIbtcdX)

* Click on Custom Code.

![](/files/qfHKhoNA58fhKJlAieUU)

* Click + Add Custom Code at the top right.

![](/files/eQrEaeXlthpoJ0ZCKd8Y)

* Paste the code snippet in the text box.
* Enter a name for your code.
* Select an option under Add Code to Pages:
* All pages: This adds the code to all of your site's pages, including any new pages that you create in the future.
* Choose specific pages: Use the drop-down menu to select the relevant pages.
* Choose where to place your code under Place Code in Head
* Click Apply.

### Installing the CustomFit Snippet on a Webflow Site

* Log in to your Webflow account.
* Click on the site's Project Settings.

![](/files/Zf1IookmkhpWSoqjrJtj)

* Click on Custom Code and paste the CustomFit Code Snippet at the head code area.

![](/files/JVdHDbTfOpLt2ngDjykU)

* Click on Save changes.

![](/files/RNrE22LUTh5lxuwO1wm0)


# Creating an Event

Events are actions performed by visitors within the website. As any action could be an event, it’s important to know which events are relevant to your website. Once you’ve started receiving the data, you’ll learn how visitors navigate and interact with your website.

**Creation of an event**

* Log in to the dashboard and navigate to the Event Analyzer page from the sidebar

![](/files/-M_LVRMrn8AFCNjMDEMr)

* Click on "+Event" to create an event

![](/files/-M_LV2uIAln2yT8CD_-Z)

* Enter the following details:

  1. **Name:** A meaningful name for your event that will allow you to easily locate it in the dashboard
  2. **Event customer id:** Provide the unique event customer id for the reference of an event. By default, the event name is considered to be the event customer-id
  3. **Description:** Briefly describe what this event is about. This will help your team members understand the experience's purpose
  4. **Event type:** There are 4 types of events\
     &#x20;• **Track:** It helps you to guide your visitors through  content like when the   &#x20;

     &#x20;                 event is visited, how long it was visited

  &#x20;         • **Page:**    It helps to understand how many times a particular page has been \
  &#x20;                          visited\
  &#x20;         • **Click:**    It helps you to know how many visitors have clicked the specific \
  &#x20;                          element on the website\
  &#x20;         • **Screen:**  It helps you to know how much part of the webpage have been \
  &#x20;                           scrolled and read

![](/files/-M_Mo62nsV5S21gU8mOf)

* Once all the details are provided click on the "Create event" button

![](/files/-M_LZPXFknbr_rh4XCU4)


# Forward Custom Events from GTM to CustomFit

To make it easier to send custom events from Google Tag Manager (GTM) to CustomFit, you can import the CustomFit GTM Event Forwarder template into your GTM account.

Suppose you've configured GTM tags for events like "Add to Cart," "Buy Now," and "Checkout" in Google Tag Manager. Now, if you want to add or import "Add to Cart" as a goal event in CustomFit, you can do it easily with the CustomFit GTM Event Forwarder.

### Importing CustomFit GTM Event Forwarder

To import the CustomFit GTM Event Forwarder, perform the below steps:

* Download the template from [here](https://cdn.customfit.ai/customfit-gtm-event-forwarder.zip).
* Log into your GTM account and choose the relevant workspace.
* Click on the T**emplates** from the sidebar and click on the **New template** button in the Tag templates section.

<figure><img src="/files/tnzpOeUL9H6vTD86ZZVk" alt=""><figcaption></figcaption></figure>

* Click the **⋮** present at the top right corner of the Template Editor page and choose the **Import** option.

<figure><img src="/files/SOZFF7xbYwLyx2z6FpVi" alt=""><figcaption></figcaption></figure>

* Locate and pick **template.tpl** from the downloaded files.
* Click on the **Save** button to successfully import the CustomFit GTM Event Forwarder.

### Creating Trigger

* Click on the **Triggers** in the sidebar, and then click on the **New** button.

<figure><img src="/files/1r9IhS406ppiCBW8X7IC" alt=""><figcaption></figcaption></figure>

* Give the **Trigger Name** as **CustomFit-GTM-Event-Forwarder-Trigger**.
* Next, click on the **Trigger Configuration** and choose the Trigger type as **Custom Event**.
* Enter the Event name as **.\*** and Select the **Use regex matching** option.

<figure><img src="/files/3d2tf183h9rAQt72emYr" alt=""><figcaption></figcaption></figure>

* Click on the **Save** button.

### Creating Tag

* Click on the **Tags** in the sidebar, and then click on the **New** button.

<figure><img src="/files/dzRYb6FKkPLrCY2Cs9bG" alt=""><figcaption></figcaption></figure>

* Give the **Tag Name** as **CustomFit GTM Event Forwarder Tag**.
* Next, click on the **Tag Configuration** and choose the Tag type as **CustomFit.ai Event Forwarder**.

<figure><img src="/files/Almz5zlTLHNrDkU5f2kj" alt=""><figcaption></figcaption></figure>

* To forward a custom event to CustomFit, click the **+ Add Event** button and enter the event name. You can add 'n' number of custom events to CustomFit. Ensure that you enter each event that you want to forward to CustomFit.
* To exclude a few of the event properties, select **+ Add property** and enter the name of the property to be excluded.

<figure><img src="/files/OcrMqKoC9fQNo0Sm418E" alt=""><figcaption></figcaption></figure>

* Click on the Triggering section and select the **CustomFit-GTM-Event-Forwarder-Trigger.**
* Click on the **Save** button.

### Adding GTM Custom Event as Goal event in CustomFit

* Click on the experience to which you want to add a goal event.
* Click on the goals tab.
* Click on **+ Add Goal events.**

<figure><img src="/files/zwU25ucNZmuGWbPI64M0" alt=""><figcaption></figcaption></figure>

* Then, give the goal name from the event type drop-down, and select the **Event type** as **Custom Event**.

<figure><img src="/files/2anCA92tgL4cjfT0STc8" alt=""><figcaption></figcaption></figure>

* Select the required GTM event from the events list.

<figure><img src="/files/xl8zULNm3u1GnFJ1eq6I" alt=""><figcaption></figcaption></figure>

* At last select the goal evaluation type and click on the Create button.

<figure><img src="/files/67M9fi50Ubl84tb8STme" alt=""><figcaption></figcaption></figure>

{% embed url="<https://youtu.be/-I-nd5w8wPM>" %}


# Event Insights

The insights page provides various information about the events:

* **Name:**  A meaningful name for your event that will allow you to easily locate it in the dashboard
* **Type:** Category of an event that allows you to differentiate the different types of events
* **Triggers:**
  * Total Triggers: Total number of times the event has been triggered
  * &#x20;Unique Triggers: Total number of times the event has been triggered by unique visitors
* **Start Sessions:** Total number of times visitors started the session through a specified page.
* **Bounce Rate:** If a session starts and ends on the same page then it is considered as a bounce(Single page session). Bounce rate is the number of single page sessions divided by the number of Start sessions.
* **Average Duration:** Average time spent by a visitor on a specified page.
* **Scroll Depth:** Average scroll depth by a visitor on a specified page when the device type is of Mobile / Desktop.
* **Journey Event:** If you want the event to be part of journey explorer then make it as journey event. By default, all the PAGE events will be marked as journey events.

### More

&#x20; Under more column you can find a dropdown consisting of:

#### Edit

* You can edit the event information by clicking on the edit option from the dropdown. But the event customer\_id and type of an event cannot be updated.&#x20;

![](/files/-M__5nvqXbb3h2PkJuLX)

* In the popup window, you can change the event information as per your requirement. But event customer\_id and type of an event cannot be changed. Finally,  click on the update button.

![](/files/-M__7QYdQJaGVM3BVAM2)

#### Daywise Graph

* You can know the daywise graph for each specific event by clicking on Daywise graph option from the dropdown.&#x20;

![](/files/-M__Ap9KN4Mysk8RnZsb)

* A popup window appears which contains the daywise graph for the selected event.

  By default the data is displayed for the last 7 days.

![](/files/-M__BVafs9Ysas4jOBy4)

* &#x20;You can also select different days or select the custom date range.

![](/files/-M__DcUu0JX75urMIH7r)

* When you click on custom you need to select the From and To dates

![](/files/-M_Mt1Ogx_fszBrvvg22)

{% hint style="info" %}
FROM date cannot be grater than the TO date

FROM date cannot exceed from the last 3months&#x20;

TO date cannot exceed from the current date
{% endhint %}

#### Event level property insights

You can get to know the various event and visitor's property count for the specific event when it was triggered by clicking on the property insights option from the dropdown menu.

![](/files/-M__HA2OWpJVE4Xhwmtj)

For example: If you to know the total number of visitors and sessions from the different browser for the selected event then select the cf*browser*name as the property

![](/files/-M__WrJ9SNoOWKTIB6t2)

Once you choose the desired property, a popup window appears which contains total sessions and total count values for the respective browser names.&#x20;

![](/files/-M__X8XmXy4MpJcAeqZE)

1. Allows you to refresh the popup window
2. Allows you to search for a particular value
3. By default top 10 entries will be displayed. You can also select the number of entries based on your choice.

![](/files/-M__aeAYe-mxb8MAfVJw)


# Event Properties

Click on Event properties, you will be redirected to the event properties page

![](/files/-M__mYWeXvYgtGxM3gS6)

### Creation of an Event Property

* Click on "Create Property" to create an event property

![](/files/-M__nKZYIecXZXjxKzPy)

* Enter the following details:

1. **Type:** Select the type of the event property from the dropdown. By default Boolean type is selected
2. **Property Key:** A meaningful name for your event property that will allow you to easily locate it in the dashboard
3. **Description:**  Briefly describe what this event property is about. This will help your team members understand the experience's purpose
4. **Trackable:** Enable this field if you want to track this event property under visitor journey level insights

![](/files/-M__p0FDjUlZCf3fwuor)

Once all the details are filled then click on Create button

![](/files/-M__ta5wDYigB28605oy)


# Property Insights

The insights page provides various information about the event properties:

![](/files/-M__u-RbFk-JQvmg6653)

* **Key:** A meaningful name for your event property that will allow you to easily locate it in the dashboard
* **Description:** Briefly describe what this event property is about. This will help your team members understand the experience's purpose
* **Type:** Provides the type of the event property that you have created
* **Status:** Enable this field  to make your event property as active
* **Trackable:**  Enable this field if you want to track this event property under visitor journey level insights

### Actions:

* Allows you to edit an event property by clicking on an edit option

![](/files/-M_a-dIaL6f0KBjNZBzH)

* Once you click on edit option you will be redirected to update event property page. Change the event property details of your choice and click on update button. Property type and property key cannot be edited

![](/files/-M_a08FYlrcF9sjzSTAM)

1. **Search property** tab allows you to search for a particular event property information.
2. **Show** allows you to display the number of entries based on your choice. By default top 10 entries are displayed

![](/files/-M__zrnO4wOzIdY0e4h8)


# Change Log

## Released on 19/05/2021

### Dynamic Dashboard Analytics\[Improvement]

In the dashboard page previously we displayed the Analytics with the start of the month and did not have any option to select the date range. But now you will be able to select the date range in which you wish to see the analytics.&#x20;

![](/files/-Mah9xzW6N5hk29tridX)

### Top pages\[New]

For a while now the CustomFit dashboard has included some basic visitor analytics like page views and unique visitors. But now the analytics dashboard has got a complete overhaul. Everything that's new is described in more detail below.

![](/files/-M_etg_aU4wfykaD5piR)

1. **Page Views**: It gives you the number of Total and Unique page views. It helps you in identifying the pages with the top views and you can personalize those pages rather than personalizing the pages which have less number of views.
2. **Start Sessions**: The number of sessions started from the given page.
3. **Average Duration**: The average time spent by the visitors on the given page. These metrics help you in understanding on which page the visitor is spending more time and on which page the visitor is spending less time. Based on this metric you can personalize the pages with less average duration and increase the duration by showing them the relevant content.
4. **Bounce Rate**: It gives you the number of sessions in which the visitor is entering and leaving the same page without browsing other pages. It helps you in identifying the pages which have the highest and lowest bounce rate pages and concentrate on personalizing the pages which have the highest bounce rate by showing the relevant content and helping the visitor to reach the goal event.&#x20;
5. **Scroll Depth**: It helps you in understanding which page has the most scroll depth and which page has the least scroll depth. You can also see the metrics based on the device type. You can personalize the page which has less scroll depth by showing the relevant content and helping the visitor to go down to the end of the page and get good information about the product.

### Traffic to the website through various UTM parameters\[New]

![](/files/-M_qupxaZn3_yKJKNClf)

This graph helps you in understanding from which different UTM parameters the website is receiving the traffic. You can check the traffic based on&#x20;

1. Top 10 UTM parameters
2. Bottom 10 UTM parameters
3. All the UTM parameters
4. Daywise metrics for each UTM parameters
5. Cumulative metrics for each UTM parameters

These metrics help you in personalizing the traffic through which your website is receiving more traffic rather than personalizing some random traffic. **For example**, consider if you are receiving more traffic to your website based on the competitor keyword then you can personalize the website to say how your product is better than your competitor.

### Traffic to the website through various Geography\[New]

![](/files/-M_qxMEwpa6SmCNAHXhr)

This graph helps you in understanding from which different geographic locations the website is receiving the traffic. You can check the traffic based on&#x20;

1. Cities
2. Countries
3. Continent
4. Top 10
5. Bottom 10
6. All
7. Cumulative metrics
8. Daywise metrics

These metrics help you in understanding to personalize the webage based on the geographic location from which you are receiving more traffic.

### Traffic to the website based on Tech\[New]

![](/files/-M_qyXiiwX6z4X85n5Hf)

This graph helps you in understanding what are the different techs which visitors are using to visit the website. You can check the traffic based on&#x20;

1. Different browsers
2. Different device types
3. Different operating system
4. Top 10
5. Bottom 10
6. All
7. Cumulative metrics
8. Daywise metrics

### &#x20;Traffic to the website through various Acquisition channels\[New]

![](/files/-M_r0Zcouq5axaa6nPpO)

�Instead of just showing all referrers in a list, the most important sources are now split up into direct, referral, organic and social. Social describes all traffic coming from social networks such as Facebook, Twitter, Reddit, and so on. Organic traffic comes from search engines (Google, DuckDuckGo, Bing, ..). The referral category contains all other traffic that comes from outside websites. When visitors type your website address into their browser's address bar or visits your website via a bookmark, it's counted as direct traffic. You can check the traffic based on

1. Top 10
2. Bottom 10
3. All
4. Cumulative metrics
5. Daywise metrics

These metrics will help you in understanding which channel is driving more traffic to your website and personalize the website to those channels.

### Overall traffic based on with & without CustomFit\[New]

![](/files/-M_r1vV0LABzcs9kLb4i)

Previously there was no way to check how many visitors have seen the default behavior and how many visitors have seen the personalized content. And what is the overall lift?

Now on the experience page, you can see the following metrics

1. **Default Sessions(Without CustomFit)** - Total number of sessions by unique visitors under default behavior of all the experiences. **Personalized Sessions(with CustomFit)** - Total number of sessions by unique visitors under CustomFit's personalized behaviors of all the experiences.
2. **Default Goals(Without CustomFit)** - Total number of goals achieved by unique visitors under the default behavior of all the experiences. **Personalized Goals(With CustomFit)** - Total number of goals achieved by unique visitors under CustomFit's personalized behaviors of all the experiences.
3. **Default Conversions(Without CustomFit)** - (Default Goals/Default Sessions)10&#x30;*.* **Personalized Conversions(With CustomFit)** *-* (Personalized Goals/Personalized Sessions)100.
4. **Lift** - The lift in the personalization conversion when compared with the default conversion.
5. **Statistical significance -** indicates confidence that the goal triggered is reliable and not due to chance. If the value is N/A there is not enough data. And when you move the cursor over the Stat sig then you can see the confidence level wrt various values.

And all the above data you can see based on your requirement of the custom date range.

### Experience table with new metrics\[New]

![](/files/-M_r7yKbOgNr2WR-FJCL)

Previously there was no way to check which experience is receiving more traffic and which experience is giving you more conversions.

Now in the experience table, you can see the following metrics

1. **Default Sessions** - Total number of sessions by unique visitors under default behavior of an experience. **Personalized Sessions** - Total number of sessions by unique visitors under all CustomFit's personalized behaviors of an experience.
2. **Default Goals** - Total number of goals achieved by unique visitors under the default behavior of an experience. **Personalized Goals** - Total number of goals achieved by unique visitors under all CustomFit's personalized behaviors of an experience.
3. **Default Conversions** - (Default Goals/Default Sessions)100. **Personalized Conversions** - (Personalized Goals/Personalized Sessions)100.
4. **Lift** - The lift in the personalization conversion when compared with the default conversion.
5. **Statistical significance -** indicates confidence that the goal triggered is reliable and not due to chance. If the value is N/A there is not enough data.

### Experience overview\[Improvement]

![](/files/-M_rAnrdNP4o6wyDO1PV)

Previously we were displaying the various information as a separate column. Now we have moved all the experience information into a popup. If you click on experience info then you can see all the required information in one single popup

### Naming the rules\[Improvement]

![](/files/-M_rDzNysUXENtvTeOxm)

Previously you did not have an option to edit the rule name. It was named by default. Now you can edit the rule name as per your requirement. It also helps you in understanding the experience insights and goals insights in a better way.

### Confirmation action in experience targeting\[Improvement]

![](/files/-M_rCzN_k8kmOqGHNHja)

When you make any changes in the targeting page and try to switch to other tabs without saving the changes then you will be prompted with a confirmation popup. Previously we did not have this option so when you move from experience targeting to other pages then your changes would have been missed.

### Dynamic Experience Insights\[Improvement]

![](/files/-M_rFeuXjbUs0PIRIKZ9)

Previously you did not have an option to view the experience insights based on your custom date range. Now you can see the experience insights based on your requirement. And you can also check the lift against different behavior if you have more than one personalized behavior to understand which personalized behavior is giving you more lift.

### Enhanced Experience Insights\[New]

![](/files/-M_rGH9lmHrXSRWpsdbU)

Previously we just had how many times the visitors have seen the personalized behavior and how many unique visitors have seen the personalized behavior. Now we have added few more metrics to provide you better insights.

1. **Total Goals Achieved** - Number of times the goal action has been triggered under a given behavior. At least one goal trigger is enough to increment this goal count in case of multiple goals triggered per session. **Unique Goals Achieved** - Number of times the goal action has been triggered by a unique visitor under a given behavior. At least one goal trigger is enough to increment this goal count in case of multiple goals.
2. **Conversions** - (Unique Goals Achieved / Unique Sessions) \* 100.
3. **Lift** - Change when compared to the selected behavior. By default, the lift will be calculated against default behavior
4. **Stat Sig** - Statistical significance indicates confidence that the goal triggered is reliable and not due to chance. By default, we compare the statistical significance with the default behavior. If the value is N/A then for one of the behavior there are not enough sessions.
5. **Session Duration** - Average session duration spent on the website after the visitor has seen this behavior. It helps you in understanding under which behavior the visitor is spending more time or less time.
6. **Property Insights** - Property insights give you a deeper understanding of the sessions. **For example**, from which team, most of the visitors are falling under a given behavior. The property insights can be drilled down to the rule level under a behavior.
7. Now we also show which rule is contributing more to the behavior traffic. **For example**, if we have multiple rules contributing to the same behavior then you can see the fine grain data of which rule is giving you more conversions.
8. Apart from all the above new metrics we also show what are the various traffic channels which are driving the traffic to the given behavior.

![](/files/-M_rJVGKxopwIR2vNnSR)

### Dynamic Experience Goal Insights\[Improvement]

![](/files/-M_rUOOQR-MhlChvNeFZ)

Previously you did not have an option to view the experience goal insights based on your custom date range. Now you can see the experience goal insights based on your requirement. And you can also check the lift against different behavior if you have more than one personalized behavior to understand which personalized behavior is giving you more lift.

### Enhanced Experience Goal Insights\[New]

![](/files/-M_rVUcynRxUZti5mSpi)

The new metrics consists of&#x20;

1. **Stat Sig** - Statistical significance indicates confidence that the goal triggered is reliable and not due to chance. By default, we compare the statistical significance with the default behavior. If the value is N/A then for one of the behavior there are not enough sessions.
2. Now we also show which rule is contributing more to the behavior traffic. **For example**, if we have multiple rules contributing to the same behavior then you can see the fine grain data of which rule is giving you more conversions.
3. Previously the same session count was shared across all the goal events irrespective of when the goal event was added. Now the goal session count value starts from the moment the goal has been added to an experience. **For example**, if an experience has already 100 sessions and now if you add the goal event then the session value starts from 1 only for this goal.�
4. **Reset** - If you wish to reset all the metrics of a particular goal event then you can click on the reset button.&#x20;
5. **Property Insights** - Now along with session values we also provide you the total session value count for a particular property.

### Enhanced Event Analyzer\[Improved]

![](/files/-M_rY5bQY0espJJ1pqZy)

Previously you just had the number of times the event has been triggered. Now along with it we provide various other metrics

1. **Triggers**: It gives you the number of Total and Unique event triggers. .
2. **Start Sessions**: The number of sessions started from the given event.
3. **Average Duration**: The average time spent by the visitors on the given event.&#x20;
4. **Bounce Rate**: It gives you the number of sessions in which the visitor is entering and leaving the same event without browsing other pages.&#x20;
5. **Scroll Depth**: It helps you in understanding which page has the most scroll depth and which page has the least scroll depth. You can also see the metrics based on the device type. You can personalize the page which has less scroll depth by showing the relevant content and helping the visitor to go down to the end of the page and get good information about the product.

### Enhanced Popup Settings\[Improved]

![](/files/-M_rZ_39wpVskw0UB7q2)

Now under popup settings you can find a new option where you can configure whether popup should be visible only in Desktop, Mobile or both.&#x20;


# CustomFit JS Script

**What are the different modes to configure the CustomFit's client SDK (java-script)?**�

CustomFit provides 2 modes

1. **Classic (Sync) mode**: When the webpage loads, it will be hidden, and after fetching and applying the personalized content changes, the webpage will be made visible.
2. **Intelligent (Async, preferred one)**: When the web page loads, it first intelligently hides only those elements that are personalized and page load won't be blocked. And after fetching the personalized changes are applied those elements will be made visible.

**Why the CustomFit \<script> needs to be added without async or deferred attribute?** �

Typically for any personalization or A/B test platforms, the script has to be sync, because the content changes need to be applied before the page is visible, else it will result in flickering (the visitors see the old content getting replaced by the new content)

But CustomFit's intelligent mode won't block the page loading after the script has been downloaded as all the fetching & applying of the personalized content changes happens in async mode.

�


