Create Source Map

Creates a legend or map used to interpret data structures between the CXone system and your CRMClosed Third-party systems that manage such things as contacts, sales information, support details, and case histories..

Dependencies

Create Source Map is for use with Proactive XS only.

Supported Script Types

The icon for the Phone script type - an old-style phone handset with curved lines indicating sound coming out of it.

Phone

Input Properties

These properties define data that the action uses when executing.

Property

Description

Caption

Enter a short phrase that uniquely identifies this action in the script. The caption appears on the script canvas under the action icon. The default is the action name.

SourceName The name of the source where the records originated. Provides a logical grouping of records within the system. If you have an invalid or missing source map, you may receive a Missing External ID error.
Mapping The dynamic data structure that enables the CXone system to interpret the data from your system (CRM).

Result Branch Conditions

Result branch conditions allow you to create branches in your script to handle different outcomes when an action executes.

Condition

Description

Default Path taken unless the script meets a condition that requires it to take one of the other branches. It is also taken if the action's other branches are not defined.
InvalidSource Path taken if the source name provided does not exist.
InvalidRootNode Path taken if CXone cannot determine the presence of a system field or a custom definition for that field name.
InvalidFieldName Path taken if CXone cannot determine the presence of a system field or a custom definition for that field name.
MissingRequiredField Path taken if a required field necessary to process the contact is not found. Required fields include a phone number field and ExternalID.
Error Path taken when the action fails to execute properly. For example, when there is an unexpected problem such as poor connectivity, syntax errors, and so on. The _ERR variable, with a single underscore character, should be populated with a condensed explanation of the problem.
FieldsInUseCantApply Path taken if there is an attempt made to change or remove a value currently in use by a filter.
NoChangesMade Path taken if the mapping between CXone and your system match exactly.
ExceededMaxDestinations Path taken if the number of phone numbers per contact exceeds the designated amount. For example, if the system allows for six numbers per contact and you provide seven, the system would follow this branch.

Mapping Fields

In conjunction with the Create Source Map action, you must include a Snippet action that defines field mappings between CXone and your CRMClosed Third-party systems that manage such things as contacts, sales information, support details, and case histories.. The following are system fields to which you can map.

  • Address
  • Agent
  • CallerID
  • CallRequestStaleMinutes
  • City
  • Compliance
  • ConfirmationRequired
  • CustomerField1
  • CustomerField2
  • ExternalID
  • FirstName
  • LastName
  • Notes
  • PhoneNumber
  • PreferredCallTime
  • Priority
  • Score
  • State
  • TimeZone
  • Zip

You can also map to Custom Data Definition you created in CXone.

Script Example

This is an example to show how this action can be used in scripts. It is not intended to be a complete script. Additional scripting may be required.

The script shown below can be used to retrieve a source map (using Get Source Map) or to create a new source map (using Create Source Map). Take notice of all the mappings coming off the Create Source Map, which enable the records coming from the CRM to be dialed.

This script contains two Snippet actions, which require some modification when incorporating this example into your script.

The Make Changes Here GET SOURCE snippet contains the following line of code 

ASSIGN sourceName = "Nick Desk"		

The Make Changes Here CREATE SOURCE snippet contains the following code: 

DYNAMIC testData
// CHANGE BELOW VALUE DEPENDING ON TEST
ASSIGN switchValue = "No Changes Made"

SWITCH switchValue
	{
		CASE "Invalid Source"
			{
			sourceName = "I Don't Exist"
			}
		CASE "Invalid Root Node"
			{
			testData.Fail.Phone = ""
			}
		CASE "Invalid Field Name"
			{
			testData = initialResult
			testData.Mappings.MyCustomField = ""
			}
		CASE "Missing Required Fields"
			{
			testData.Mappings.City = "City"
			testData.Mappings.State = "State"
			}
		CASE "Field In Use Cant Apply"
			{
			// Switch ValueString with a CDD or SDD that you currently have applied to a source and using to filter
			testData = initialResult
			testData.Mappings.FilterOnMe = "City"
			}
		CASE "No Changes Made"
			{
			// Don't Change anything just pass in the exact same mapping we've already got
			testData = initialResult
			}
		CASE "Create Mapping System"
			{
			// SYSTEM DATA DEFINITIONS
			testData = initialResult
			testData.Mappings.TimeZone = "Time Zone"
			testData.Mappings.Compliance = "Is Cell Phone"
			testData.Mappings.ConfirmationRequired = "Confirmation Required"
			testData.Mappings.CallerID = "Caller ID"
			testData.Mappings.Score = "Score"
			testData.Mappings.CustomerField1 = "Customer Field 1"
			testData.Mappings.CustomerField2 = "Customer Field 2"
			testData.Mappings.ExternalID = "External ID"
			testData.Mappings.Priority = "Priority"
			testData.Mappings.Zip = "Zip"
			testData.Mappings.State = "State"
			testData.Mappings.City = "City"
			testData.Mappings.Address = "Address"
			testData.Mappings.LastName = "Last Name"
			testData.Mappings.FirstName = "First Name"
			testData.Mappings.PhoneNumber = "Phone Number"
			}
		CASE "Update Mapping System"
			{
			// SYSTEM DATA DEFINITIONS
			testData = initialResult
			testData.Mappings.TimeZone = "My TimeZone"
			testData.Mappings.ConfirmationRequired = "Requires Confirmation"
			testData.Mappings.CallerID = "Phone Number"
			testData.Mappings.State = "Contacts State"
			}
		CASE "Create Mapping Custom"
			{
			// CUSTOM DATA DEFINITIONS
			testData = initialResult
			testData.Mappings.YourCDDName = "[COLUMN TO MAP IT TO]"
			}
		CASE "Update Mapping Custom"
			{
			// CUSTOM DATA DEFINITIONS
			testData = initialResult
			testData.Mappings.YourCDDName = "[COLUMN TO MAP IT TO]"
			}
		}	

Download this script.