private async Task <DialogTurnResult> IntroStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
        {
            var processDetails = (ProcessDetails)stepContext.Options;
            var text           = string.Empty;
            var rpaService     = new RPAService();
            var response       = rpaService.GetConversationFlow(stepContext.Context.Activity.Conversation.Id);
            var result         = JsonConvert.DeserializeObject <List <ConversationFlow> >(response.Content);

            if (result.Count > 0)
            {
                processDetails.CurrentQuestion = result[0];
                if (processDetails.CurrentQuestion.u_last_question_index == 0 && processDetails.AttemptCount == 0)
                {
                    text = "Process " + processDetails.ProcessSelected.Name + " needs input parameters, please start entering them below.";
                }
                else if (processDetails.AttemptCount != 0 && processDetails.CurrentQuestion.u_last_question_index == 0)
                {
                    text = "Input parameters entered are incorrect, please re-enter them below.";
                }

                //delete record from SN
                rpaService.DeactivatedConversationFlow(processDetails.CurrentQuestion.sys_id, stepContext.Context.Activity.Conversation.Id);
                if (processDetails.CurrentQuestion.u_type.Contains("Bool"))
                {
                    var boolParamTrue = JsonConvert.SerializeObject(new PromptOption {
                        Id = "boolParam", Value = "true"
                    });
                    var boolParamFalse = JsonConvert.SerializeObject(new PromptOption {
                        Id = "boolParam", Value = "false"
                    });
                    var choices = new List <Choice> {
                        new Choice
                        {
                            Value  = "true",
                            Action = new CardAction(ActionTypes.PostBack, "true", null, "true", "true", value: boolParamTrue, null)
                        },
                        new Choice
                        {
                            Value  = "false",
                            Action = new CardAction(ActionTypes.PostBack, "false", null, "false", "false", value: boolParamFalse, null)
                        }
                    };
                    return(await stepContext.PromptAsync(nameof(TextPrompt), new PromptOptions { Prompt = (Activity)ChoiceFactory.SuggestedAction(choices, text + Environment.NewLine + "For " + processDetails.CurrentQuestion.u_param_name.UppercaseFirst() + " choose one option below.") }, cancellationToken));
                }
                else
                {
                    return(await stepContext.PromptAsync(nameof(TextPrompt), new PromptOptions { Prompt = MessageFactory.Text(text + Environment.NewLine + "Enter " + processDetails.CurrentQuestion.u_param_name.UppercaseFirst() + ":") }, cancellationToken));
                }
            }
            else
            {
                processDetails.CurrentQuestion = new ConversationFlow();
                //get parameters entered

                return(await stepContext.NextAsync(processDetails, cancellationToken));
            }
        }