Пошаговая конфигурация позволяет соединителю динамически заполнять конфигурацию соединителя на основе ответов, предоставленных пользователем. Например, заполнение раскрывающегося списка «Город» после выбора раскрывающегося списка «Штат».
Требования
В этом руководстве предполагается, что вы уже знакомы с конфигурациями Community Connector. См. определение конфигурации с помощью getConfig для повышения квалификации.
Обзор
 Пошаговая конфигурация состоит из многократного вызова Looker Studio getConfig() , и ваш соединитель каждый раз возвращает дополнительные вопросы по настройке. Каждый вызов getConfig() будет включать ответы пользователя на последний ответ getConfig() . Этот процесс продолжается до тех пор, пока вы возвращаете ответ с помощью setIsSteppedConfig(true) .
Рекомендации
-  Установите setIsSteppedConfig(true)до завершения настройки.
-  Looker Studio будет неоднократно вызывать getConfig(), пока установленsetIsSteppedConfig(true)После завершения настройки окончательный ответgetConfig()должен установитьsetIsSteppedConfig(false).
-  Установите isDynamic(true)для вопросов конфигурации, которые определяют последующие вопросы.
-  Если поле с пометкой isDynamicбудет изменено пользователем, последующие записи конфигурации будут удалены в пользовательском интерфейсе, и пользователю необходимо будет настроить все последующие шаги. Это помогает гарантировать, что пользователи не отправят вам недействительную конфигурацию.
-  Ответы, предоставленные пользователем, будут переданы через request.configParams.
- request.configParamsбудет- undefinedдля первого запроса- getConfig()к вашему коннектору. Последующие запросы будут включать предоставленные пользователем ответы в виде объекта, привязанного к идентификаторам конфигурации или- undefined, если пользователь не предоставляет никаких ответов.- Пример: - { state: 'CA', city: 'mountain_view' }
- Конфигурации являются аддитивными
- Новые вопросы по конфигурации следует добавлять после существующих. 
- Конфигурации не могут быть изменены
- Если ранее был задан вопрос о конфигурации, он должен присутствовать во всех последующих вызовах. Например, если вопрос о конфигурации A был задан при первом вызове - getConfig(), A должен быть включен во все будущие ответы.
- Конфигурации идемпотентны
- Вызовы - getConfig()с теми же- configParamsдолжны возвращать ту же конфигурацию.
- Динамические параметры не могут быть переопределены
- Looker Studio не позволяет переопределять параметры динамической конфигурации. 
Примеры конфигураций
Динамические раскрывающиеся списки
Этот первый вопрос предлагает пользователю выбрать штат, а затем динамически предоставляет раскрывающийся список городов на основе выбранного штата.
var cc = DataStudioApp.createCommunityConnector();
function optionsForState(state) {
  switch (state) {
    case "IL": {
      return [["Chicago", "chicago"], ["Springfield", "springfield"]];
    }
    case "CA": {
      return [["Mountain View", "mountain_view"], ["Los Angeles", "los_angeles"]];
    }
    default: {
      cc.newUserError()
          .setText('You must either select "IL" or "CA"')
          .throwException();
    }
  }
}
function getConfig(request) {
  var configParams = request.configParams;
  var isFirstRequest = configParams === undefined;
  var config = cc.getConfig();
  if (isFirstRequest) {
    config.setIsSteppedConfig(true);
  }
  config.newSelectSingle()
      .setId("state")
      .setName("State")
  // Set isDynamic to true so any changes to State will clear the city
  // selections.
      .setIsDynamic(true)
      .addOption(config.newOptionBuilder().setLabel("Illinois").setValue("IL"))
      .addOption(config.newOptionBuilder().setLabel("California").setValue("CA"));
  if (!isFirstRequest) {
    var city = config.newSelectSingle()
        .setId("city")
        .setName("City");
    var cityOptions = optionsForState(configParams.state);
    cityOptions.forEach(function(labelAndValue) {
      var cityLabel = labelAndValue[0];
      var cityValue = labelAndValue[1];
      city.addOption(config.newOptionBuilder().setLabel(cityLabel).setValue(cityValue));
    });
  }
  return config.build();
}
Разветвленные пути
При этом будет задан дополнительный вопрос, если выбранная «Страна» — «США».
var cc = DataStudioApp.createCommunityConnector();
function getConfig(request) {
  var configParams = request.configParams;
  var isFirstRequest = configParams === undefined;
  var config = cc.getConfig();
  if (isFirstRequest) {
    config.setIsSteppedConfig(true);
  }
  config
      .newSelectSingle()
      .setId('country')
      .setName('Country')
  // Set isDynamic to true so any changes to Country will clear the state
  // selections.
      .setIsDynamic(true)
      .addOption(config.newOptionBuilder().setLabel('United States').setValue('USA'))
      .addOption(config.newOptionBuilder().setLabel('Canada').setValue('CA'));
  if (!isFirstRequest) {
    // validate a valid value was selected for configParams.country
    if (configParams.country === undefined) {
      cc.newUserError().setText('You must choose a country.').throwException();
    }
    switch (configParams.country) {
      case 'USA': {
        config
            .newSelectSingle()
            .setId('state')
            .setName('State')
            .addOption(config.newOptionBuilder().setLabel('New York').setValue('NY'))
            .addOption(config.newOptionBuilder().setLabel('Calfornia').setValue('CA'));
        break;
      }
      case 'CA': {
        // No additional configuration is needed for Canada.
        break;
      }
      default: {
        cc.newUserError()
            .setText('You must either select "CA" or "USA"')
            .throwException();
      }
    }
  }
  return config.build();
}