Hello. One option would be to create a custom action that acts as a form. There are lots of different input parameter types available in the IDE (Boolean, Multi-Select, List, etc).
"Subquestions" would probably still need to be handled with conditionals and separate playbooks steps.
Here's a basic code example (make sure to also add the corresponding parameters themselves):
from SiemplifyAction import SiemplifyAction
from SiemplifyUtils import unix_now, convert_unixtime_to_datetime, output_handler
from ScriptResult import EXECUTION_STATE_COMPLETED, EXECUTION_STATE_FAILED,EXECUTION_STATE_TIMEDOUT
import json
@output_handler
def main():
siemplify = SiemplifyAction()
question1 = siemplify.extract_action_param("q1", print_value=True)
question2 = siemplify.extract_action_param("q2", print_value=True)
multi = siemplify.extract_action_param("multi", print_value=True)
json_results = {
'question1': question1,
'question2': question2,
'multi': multi
}
status = EXECUTION_STATE_COMPLETED # used to flag back to siemplify system, the action final status
output_message = "output message :" # human readable message, showed in UI as the action result
result_value = json.dumps(json_results) # Set a simple result value, used for playbook if\\else and placeholders.
siemplify.result.add_result_json(result_value)
siemplify.LOGGER.info("\\n status: {}\\n result_value: {}\\n output_message: {}".format(status,result_value, output_message))
siemplify.end(output_message, result_value, status)
if __name__ == "__main__":
main()
Parameter definition in the IDE:

Playbook user entry:

Placeholder reference in subsequent playbook actions:
[Siemplify_kmquestions_1.JsonResult| "question1"]