Implement a skip option

  • Release version: Australia
  • Updated March 12, 2026
  • 1 minute to read
  • Use a rich control to provide the option for users to skip a question.

    Use the rich control \nType SKIP to skip question to provide the option for a user to skip a question. There are two ways to configure a skip option:
    • In the provider attributes script, use _skip_internal to trigger a contextual action service to skip the question.
    • Map a contextual action for the provider and use //request_context.contextual_action = "SKIP" to skip the question. See Contextual actions for custom chat integrations to learn more about mapping user inputs to contextual actions.
    Example script:
    va_sms_twilio_adapter_default_text_outbound_transformer
    (function execute(inputs, outputs) {
      try {
        var richControl = inputs.rich_control;
        outputs.result = richControl['label'];
        if (richControl['required'] === false && richControl['uiType'] != "OutputText") { // new
          outputs.result += "\nType SKIP to skip question"; // new
        } // new
      } catch(e){
        gs.error('Error in default text outbound transformer: ' + e.message);
        throw e; 
      }
    })(inputs, outputs);
    va_sms_twilio_adapter_provider_attributes
    (function execute(inputs, outputs) {
        try {
            var headers = (inputs.headers);
            var payload = (inputs.payload);
            var smsUtil = new VASMSTwilioUtil();
            outputs.token = JSON.stringify(smsUtil.getToken(headers, payload));
            var data = payload.data;
            var request_context = {}; 
            if (data['MediaUrl0']) {
                var attachment_value = {};
                attachment_value.url = data['MediaUrl0'];
                attachment_value.content_type = data['MediaContentType0'];
                attachment_value.name = smsUtil.getFileName(attachment_value.url , attachment_value.content_type);
                request_context.attachment_value = attachment_value;
            } else {
               var b = data['Body']; // new
               request_context.typed_value = b; // new
               if (b === "SKIP") { // new
                 request_context.typed_value = "_skip_internal"; // new
                 //request_context.contextual_action = "SKIP"; // new
               } // new
            }
            outputs.request_context = request_context;
            outputs.provider_user_id = data.From;
        } catch (e) {
            gs.error("Error in va_sms_twilio_adapter_provider_attributes : " + e.message);
        }
    })(inputs, outputs);
    contextual_action (all new)
    (function execute(inputs, outputs) {
      var contextual_action = inputs.request_context.contextual_action;
      if (contextual_action === "SKIP") {
          sn_cs.VASystemObject.skipOptionalQuestion(inputs.conversation_id);
      }
    })(inputs, outputs);