Skip to main content
Skip table of contents

Configuring Forms For CRM Sync

Before continuing with this article, please read the Form Data Model.

You may wish to have specific fields sync between Boss Insights and your CRM software. You are able to configure fields within forms to have “push” (pushing data from Boss Insights to the CRM software) or “pull” (pulling data from the CRM software to Boss Insights) access.

You are able to edit forms either through the Form Editor or directly through the configuration (data.json5) file. We strongly recommend using the Form Editor as it provides an easy to use interface to build and configure forms.

The data.json5 file is a configuration file for the Dashboard in The Portal. A starter file will be provided by Boss Insights. If you do not have access to this file, you can download it from your Administration Portal through the File Explorer. Within the File Explorer, the data.json5 file can be found under “Private” folder and then the “Dashboard” folder. Please read the Form Data Model before editing the data.json5 file directly. This file contains important data for configuring The Portal. If you are not familiar with JSON, we strongly recommend using the Form Editor to avoid any mishaps.

For either of these options, the sync configurations are what need to be altered. With the Form Editor, these options are visible through the configuration menu whereas in the data.json5 file, these must be added as objects. Please visit the Sync Information section to learn more about the configurable options.

If you are using Salesforce, you may be interested in keeping track of leads that are converted into accounts. Please refer to the Salesforce section for more details.

Form Editor Vs. Data Configuration File Configurations

These are a few side-by-side comparisons of sync being enabled for specific fields. Please note that the Form Editor provides an interface to edit forms within the data configuration file (data.json5). Each field that you would like synced, must have the sync options configured.

You will notice that the sync object being added directly to the configuration file in the left column using JSON. In the right column, you will see the equivalent being done via the form editor.

If you would like a deeper tutorial on using the form editor, please visit the CRM section in the form editor guide. This guide will provide more details on how to find the sync configuration objects and change them.

If you would like to make changes to the configuration file, please visit the Form Data Model and then view the comparisons below. There is a sample configuration of the contacts object in the Contacts Configuration section below.

Currently only Profile and Contacts object fields from Boss Insights can be configured to be synced.

Example Field Configurations

Contacts - First Name

CODE
{
  profile: {
    ...
    fields: [
      ...
      {
        name: 'contacts',
          ...
        },
        fields: [
          {
            name: 'first-name',
            title: 'First Name',
            type: 'text',
            sync: {
              push: true,
              pull: true,
              entity: 'contacts',
              field: 'first-name'
            },
          },
    ]
    ...  
  },
  ...
}

Figure 1. Form editor showing sync options for First Name field under Contacts on form

The sync object on the left is equivalent (data.json5) to the sync configuration on the right (form editor).

push: true

pull: true

entity: 'contacts',

field: 'first-name'

Contacts - Last Name

CODE
{
  profile: {
    ...
    fields: [
      ...
      {
        name: 'contacts',
          ...
        },
        fields: [
          {
            name: 'last-name',
            title: 'Last Name',
            type: 'text',
            sync: {
              push: true,
              pull: true,
              entity: 'contacts',
              field: 'last-name'
            },
          },
    ]
    ...  
  },
  ...
}

Figure 2. Form editor showing sync options for Last Name field under Contacts on form

The sync object on the left is equivalent (data.json5) to the sync configuration on the right (form editor).
push: true

pull: true

entity: 'contacts',

field: 'last-name'

Contacts - Email

CODE
{
  profile: {
    ...
    fields: [
      ...
      {
        name: 'contacts',
          ...
        },
        fields: [
              ...
          {
            name: 'email',
            title: 'Email',
            type: 'text',
            sync: {
              push: true,
              pull: true,
              entity: 'contacts',
              field: 'email'
            },
          },
    ]
    ...  
  },
  ...
}

Figure 3. Form editor showing sync options for Email field under Contacts on form

The sync object on the left is equivalent (data.json5) to the sync configuration on the right (form editor).

push: true

pull: true

entity: 'contacts',

field: 'emails'

Contacts - Phone Number

CODE
{
  profile: {
    ...
    fields: [
      ...
      {
        name: 'contacts',
          ...
        },
        fields: [
              ...
          {
            name: 'phone',
            title: 'Phone',
            type: 'tel',
            sync: {
              push: true,
              pull: true,
              entity: 'contacts',
              field: 'phone'
            },
          },
    ]
    ...  
  },
  ...
}

Figure 4. Form editor showing sync options for Phone field under Contacts on form

The sync object on the left is equivalent (data.json5) to the sync configuration on the right (form editor).

push: true

pull: true

entity: 'contacts',

field: 'phone'

Profile - Company Legal Name

CODE
{
  profile: {
    ...
    fields: [
      ...
      {
        name: 'company-legal-name',
        title: 'Company Legal Name',
        type: 'text',
        sync: {
          push: true,
          pull: true,
          entity: 'accounts',
          field: 'name'
        },
    ]
    ...  
  },
  ...
}

Figure 5. Form editor showing sync options for Company Legal Name field under Profile on form

The sync object on the left is equivalent (data.json5) to the sync configuration on the right (form editor).

push: true

pull: true

entity: 'accounts',

field: 'name'

Sync Configuration Information

The table below shows the configuration options and their possible values.

Key

Example Value

Description

pull

Form Editor: checked is true, unchecked is false

data.json5: boolean value, either true or false

If true, will allow updates going from Boss Insights to CRM program

push

Form Editor: checked is true, unchecked is false

data.json5: boolean value, either true or false

If true, will allow updates going from CRM program to Boss Insights

entity

‘accounts’, ‘contacts'

Refers to entity name in CRM configuration.

field

‘name’, ‘amount’, ‘email’, ‘phone’, ‘website’ etc.

Refers to the entity’s property name in CRM.

Example Configuration In Data.json5

Please read the Form Data Model before editing the data.json5 file directly. This file contains important data for configuring The Portal. If you are not familiar with JSON, we strongly recommend using the Form Editor to avoid any mishaps.

When configuring the data.json5 file, fields arrays within objects can include a sync object. This sync object contains the configurations outlined in the Sync Information table above.

Contacts Configuration

This is the contacts object set up to be synced. You will notice within the contacts object, their is a fields array. Within that array, you will find the necessary fields such as first name, email, and phone for contact. Each of these separate field objects will have a sync object.

JSON
{
  profile: {
    ...
    fields: [
      ...
      {
        name: 'contacts',
        type: 'fieldset',
        multiple: true,
        sync: {
          // it's possible for fieldsets to pull from multiple entities if they have one-to-one relationships to eachother, but one entity must be defined as the master
          masterEntity: 'contacts'
        },
        fields: [
          {
            name: 'first-name',
            title: 'First Name',
            type: 'text',
            sync: {
              push: true,
              pull: true,
              entity: 'contacts',
              field: 'first-name'
            }
          },
          {
            name: 'last-name',
            title: 'Last Name',
            type: 'text',
            sync: {
              push: true,
              pull: true,
              entity: 'contacts',
              field: 'last-name'
            }
          },
          {
            name: 'email',
            title: 'Email',
            type: 'text',
            sync: {
              push: true,
              pull: true,
              entity: 'contacts',
              field: 'email'
            }
          },
          {
            name: 'phone',
            title: 'Phone',
            type: 'tel',
            sync: {
              push: true,
              pull: true,
              entity: 'contacts',
              field: 'phone'
            }
          },
        ],
        ...
        }
      },
    ]
    ...  
  },
  ...
}

Salesforce

If you are using Salesforce, you may be interested in keeping track of leads that are converted into accounts. If a customer is categorized as a lead, there will be additional object called syncLead in addition to the sync object:

CODE
syncLead: {
  push: true,
  pull: true,
  entity: 'leads',
  field: 'company'
}

If the lead converted into an account on Salesforce side, the sync object will be referenced instead of syncLead.

Data.json5

Below is an example of the same data.json5 code as earlier with the syncLead section added.

CODE
{
  profile: {
    ...
    fields: [
      ...
      {
        name: 'contacts',
        type: 'fieldset',
        multiple: true,
        sync: {
          // it's possible for fieldsets to pull from multiple entities if they have one-to-one relationships to eachother, but one entity must be defined as the master
          masterEntity: 'contacts'
        },
        fields: [
          {
            name: 'first-name',
            title: 'First Name',
            type: 'text',
            sync: {
              push: true,
              pull: true,
              entity: 'contacts',
              field: 'first-name'
            },
            syncLead: {
              push: true,
              pull: true,
              entity: 'leads',
              field: 'first-name'
            }
          },
          ...

Form Editor

The same options are configurable for Sync Lead as they are for Sync. Please refer to the Sync Configuration Information table for details on each option. You may also refer to the example field configurations for details on entity and field names.

Support

If you require additional support with editing forms, please contact support.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.