protected override void Execute(CodeActivityContext context) { //var inputData = InputCreditData.Get(context); List <string> listApprovedCreditStatus = new List <string> { "Approved", "Disbursed", "Disbursing", "Disbursing&Repaying", "Effective", "Fully Disbursed", "Fully Repaid", "Repaid", "Repaying", "Signed" }; WebUtility webUtility = new WebUtility(ApiEndpoint); var scoreRequest = new { Inputs = new Dictionary <string, List <Dictionary <string, string> > >() { { "input1", new List <Dictionary <string, string> >() { new Dictionary <string, string>() { { "Region", Region.ToString().Replace("_", " ") }, { "Country", Country.Get(context) }, { "Borrower", Borrower.Get(context) }, { "Project Name", ProjectName.Get(context) }, { "Original Principal Amount", PrincipalAmount.Get(context).ToString() }, { "Credit Status", "" } } } }, }, GlobalParameters = new Dictionary <string, string>() { } }; try { string jsonStringInput = JsonConvert.SerializeObject(scoreRequest); var responseOutput = Task.Run(async() => await webUtility.PostAsync(bodyAsJsonString: jsonStringInput, token: ApiKey)); JObject jsonResponse = JObject.Parse(responseOutput.Result); string predictedStatus = jsonResponse.SelectToken("$..output1[0]")["Scored Labels"].ToString(); string grantStatus = ""; if (listApprovedCreditStatus.Contains(predictedStatus)) { grantStatus = GrantStatus.Approved.ToString(); } else { grantStatus = GrantStatus.Rejected.ToString(); } Outcome.Set(context, grantStatus); } catch (Exception ex) { throw new System.Exception($"Actual Exception: {ex.InnerException}\nPossible cause: {apiHostingPlanPrompt}"); } }