Dialogflow inline can't count after open webhook on q2

45 Views Asked by At

I try to count the result of the conversation between chatbot and user in Inline Editor( Java Script ), if the answer is somehting like "YES" count will be increase by 1 or Else do somthing or nothing at all but the webhook either return Error DEADLINE_EXCEED.

Error message

This is part of the code

function re(agent) {
  var q1y=agent.parameters.q1y;
  var q1ny=agent.parameters.q1ny;
  var q1nny=agent.parameters.q1nny;
  var q2y=agent.parameters.q2y;
  var q2ny=agent.parameters.q2ny;
  var q8y=agent.parameters.q8y;
  var q9y=agent.parameters.q9y;
  var q9yy=agent.parameters.q9yy;
  var q11y=agent.parameters.q11y;
  var q12y=agent.parameters.q12y;
  var q12ny=agent.parameters.q12ny;
  var q14y=agent.parameters.q14y;
  var q14yy=agent.parameters.q14yy;
  var q17y=agent.parameters.q17y;
  var q17yy=agent.parameters.q17yy;
  var q20y=agent.parameters.q20y;
  var q20n=agent.parameters.q20n;

  var count=0;
  var result=0;
  var res1=0;
  {
    if(q1y=='yes'){
      count=count+1;}
    else if(q1ny=='yes'){
      count=count+1;}
    else if(q1nny=='yes'){
      count=count+1;}


    if(q2y=='yes'){
      count=count+0;
    }
    else if(q2ny=='yes'){
      count=count+1;
    }
    if(q8y=='yes'){
      count=count+1;
    }

    if(q9y=='yes'){
      count=count+0;
    }
    else if(q9yy=='yes'){
      count=count+1;
    }

    if(q11y=='yes'){
      count=count+1;
    }

    if(q12y=='yes'){
      count=count+0;
    }
    else if(q12ny=='yes'){
      count=count+0;
    }

    if(q14y=='yes'){
      count=count+0;
    }
    else if(q14yy=='yes'){
      count=count+1;
    }

    if(q17y=='yes'){
      count=count+1;
    }
    else if(q17yy=='yes'){
      count=count+1;
    }

    if(q20y=='yes'){
      count=count+1;
      if( count>=4){agent.add('---------');
        agent.add('+++++++++++++++');}
      else if( count<4) {agent.add('//////////////////');}

    }

    if(q20n=='no'){
      count=count+0;

    }
  }
  if( count>=4){agent.add('---------');
    agent.add('+++++++++++++++');}
  else if( count<4) {agent.add('//////////////////');}


}



let intentMap = new Map();
intentMap.set('Default Welcome Intent', welcome);
intentMap.set('Default Fallback Intent', fallback);
intentMap.set('q2',re);
intentMap.set('q8',re);
intentMap.set('q9y',re);
intentMap.set('q9n',re);
intentMap.set('q9yy',re);
intentMap.set('q9yn',re);
intentMap.set('q11',re);
intentMap.set('q12y',re);
intentMap.set('q12n',re);
intentMap.set('q14y',re);
intentMap.set('q14n',re);
intentMap.set('q14yy',re);
intentMap.set('q14yn',re);
intentMap.set('q16',re);
intentMap.set('q17yy',re);
intentMap.set('q17yn',re);
intentMap.set('q19',re);
intentMap.set('q20',re);


// intentMap.set('your intent name here', yourFunctionHandler);
// intentMap.set('your intent name here', googleAssistantHandler);
agent.handleRequest(intentMap);

Intent every Intentmap.set is set to "webhook call for this intent"

Sorry if i post wrong i'm just started yesterday dead line is coming and my english is not good.

edit 1 : update the full function

1

There are 1 best solutions below

0
Prisoner On

There are a number of things about your code that are difficult to untangle, but it appears that the immediate cause of your problem is that the Intent that was triggered was "q20y", yet you haven't registered an Intent Handler for that name.

Since the webhook is called, but it doesn't actually handle the request, it sits there and doesn't reply which causes the timeout.

One issue you may run into, however, even if you added it is that request parameters are not preserved between Intents. They may be saved as a Context Parameter, if that Context is active or if you explicitly set it to a Context.