In this article
Overview
Auto-combined surveys automatically merge questionnaire nodes that match the auto-combined schema. Nodes that don’t match will be ignored unless you create a mapping rule to define where the data should go. All target nodes in the mapping rules must exist in the auto-combined schema before they can be referenced.
Mapping rules are applied during synchronization. After that, the data becomes available in Studio.
Adding a Mapping Rule
Click Add Mapping to create a new rule.
This opens Studio in a new browser tab. From there, click Edit CDL to open the CDL editor.
After adding your mapping rule in CDL format, click Publish to apply the rules during the next synchronization.
Editing or Deleting Rules
After creating mapping rules, you can edit or delete them as needed.
Structure of Mapping Rule CDL
Mapping rules are written inside a mapping autocombined entity at the top level.
Inside, you can define one or more mapping survey entities. These use the surveys property to specify which surveys the mapping applies to.
Each mapping survey can include the following types of mappings:
mapping question – maps question names
mapping loop – maps loop names
mapping item – maps various objects such as:
questions
gridPrompts
gridScales
lists
loops
Example CDL
mapping autocombined #auto {
mapping survey {
surveys: "p123","p456" // can have one or many
mapping question { // will change name of questions
mapping {
from: "gender"
to: "sex"
}
}
mapping loop { // will change name of the loop
mapping {
from: "location"
to: "place"
}
}
mapping item {
questions: "sex" // name of questions to map, can be a list
// this will change the question option
mapping {
from: "gender"
to: "sex"
}
}
mapping item {
gridprompts: "mygrid" // Question in target schema
mapping {
from: "one"
to: "1"
}
mapping {
from: "two"
to: "2"
}
}
mapping item {
gridscales: "mygrid" // Question in target schema
mapping {
from: "one"
to: "1"
}
mapping {
from: "two"
to: "2"
}
}
mapping item {
lists: "list1" // list in target schema
mapping {
from: "one"
to: "1"
}
mapping {
from: "two"
to: "2"
}
}
mapping item {
loops: "l1" // will map the options in the loop
mapping {
from: "l1"
to: "loop1"
}
mapping {
from: "location"
to: "place"
}
}
}
}