Dialogflow IntentHandler not found for intent: myIntent (Dialogflow V2)

failed to parse dialogflow response into appresponse because of invalid platform response
failed to parse dialogflow response into appresponse because of empty speech response
expectuserresponse must be false for cancel intent response
dialogflow fallback intent
dialogflow empty response
dialogflow there are some errors associated with this intent
could not find a richresponse or systemintent in the platform response
malformed response dialogflow

Since I upgraded my Dialogflow to use v2 API, I get the following error:

Dialogflow IntentHandler not found for intent: myIntent

For some reasons, my intent is no longer recognized altough the action name is identical - myIntent.

This is how I'm using my NodeJS (express V4) app to return a response:

dialogflowApp.intent('myIntent', (conv, {version}) => {
    conv.close('test');
});

What could have gone wrong?

Make sure that myIntent is spelled the same in Dialogflow and in your NodeJS webhook function, otherwise you'll get this error. This is how I write and access my functions in the webhook:

//Function execution
dialogflowApp.intent('myIntent', myIntentFunction); 


//Function definition
function myIntentFunction(conv, {version}){
    conv.close('test');
}

Dialogflow IntentHandler not found for intent: myIntent · Issue #130 , Since I upgraded my Dialogflow to use v2 API, I get the following error: `​Dialogflow IntentHandler not found for intent: myIntent` For some  Since I upgraded my Dialogflow to use v2 API, I get the following error: Dialogflow IntentHandler not found for intent: myIntent For some reasons, my intent is no longer recognized altough the ac

V2 Actions SDK uses the Intent name instead of the Action Name. The Intent name can be found in your request, or directly from DialogFlow intent interface

DialogFlow V1 to V2 Migration Documentation

Dialogflow IntentHandler not found for intent: · Issue #209 · actions , {"error":"Dialogflow IntentHandler not found for intent: "}. This is my basic code for a test Welcome Intent, const express = require('express')  As far as I can tell, its list of operations can be found on https: You need to pass intent_view=dialogflow_v2.enums.IntentView.INTENT_VIEW_FULL to get_intent

In V2 you have to use the intent name instead of the action name. First you define this at the beginning of the index file:

'use strict';
const {dialogflow} = require('actions-on-google');
const functions = require('firebase-functions');
const app = dialogflow({debug: true});

Then you have to add the code for each intent:

app.intent('intentName1', (conv, {parameterName}) => {
     conv.close('Answer text');
});

app.intent('intentName2', (conv, {parameterName}) => {
     conv.ask('Answer text');
});

Finally, at the end of the index file, it is necessary to set the DialogflowApp object to handle the HTTPS POST request. Like this:

exports.dialogflowFirebaseFulfillment = functions.https.onRequest(app);

In your example:

dialogflowApp.intent('myIntent', (conv, {version}) => {
    conv.close('test');
});

You should check that you have defined 'dialogflowApp' at the begining of index file:

const dialogflowApp = dialogflow({debug: true});

Then you have two options:

  1. Replace 'myIntent' with the name of the intent

  2. Change your intent name to be 'myIntent'

IMPORTANT: You have to make sure that the intent name in dialogflow and that in the code are exactly the same, since it is case sentive.

'version' should be the name of a parameter received from that intent.

Also check that you have this at the end of the index file:

exports.dialogflowFirebaseFulfillment = functions.https.onRequest(dialogflowApp);

Hope this can help! :)

Dialogflow IntentHandler не найдено намерения: myIntent , Так как я модернизировал свой Dialogflow использовать v2 API, я получаю следующее сообщение об ошибке: Dialogflow IntentHandler not found for intent:  An intent represents a mapping between input from a user and an action to be taken by your application. When you pass user input to the DetectIntent (or StreamingDetectIntent) method, the Dialogflow API analyzes the input and searches for a matching intent. If no match is found, the Dialogflow API returns a fallback intent (is_fallback = true).

Try to put your intent handler outside your express '/' post route:

dialogflowApp.intent('myIntent', (conv, {version}) => {
    conv.close('test');
});
express().post('/', function(req, res)) {
})

Build fulfillment with the Actions on Google Node.js client library, You can use the client library in conjunction with the Dialogflow define that the client library automatically runs before calling the intent handler. If you are using Dialogflow, Dialogflow can trigger a specific fallback intent when no other and code samples are licensed under the Apache 2.0 License. Warning: The Dialogflow V1 API shutdown has been postponed to May 31st, 2020. Read more details here.. The /intents endpoint is used to create, retrieve, update, and delete intent objects.

According to this comment on Github, Actions-on-Google V2 does not match on the action, but instead matches on the intent.name. I have yet to find a smooth way of finding the name property of a Dialogfow intent, but I have been able to find it by looking at the Diagnostic info after testing it in the right column.

Note: What you named the intent at the top of the screen is the Display Name, not the name.

Update: Part of the intent.name can be found in the URL after opening the intent. The intent.name currently is given in the following format:

projects/<username>/agent/intents/<intent-uuid>

The intent-uuid can be found in the last part of the path:

https://console.dialogflow.com/api-client/#/agent/<agent-uuid>/editIntent/<intent-uuid>/

While this is also not ideal either, it can make things a little easier.

Error: Dialogflow IntentHandler not found for intent: Default Fallback for intent: myIntent (Dialogflow V2) it was suggested that the intent name  Warning: The Dialogflow V1 API shutdown has been postponed to May 31st, 2020. Read more details here.. Throughout the migration process of going from V1 to V2, if you use Dialogflow fulfillment, you'll need to make sure you respond correctly to Dialogflow's V2 webhook requests.

Our API V2 now serves as the default API for all new Dialogflow agents, and all new feature upgrades will only be released for API V2. We built API V2 on Google infrastructure and incorporated the best of Google’s machine learning. Some of API V2’s benefits include Google Cloud Speech-to-Text integration, agent management, and gRPC support.

Back in April, we announced that Dialogflow API V2, along with Dialogflow Enterprise Edition (built on API V2), became generally available to all users. API V2 now serves as the default API for all new Dialogflow agents, and we’ve been releasing new features on API V2 since then.

At first, I'm sorry if the question seems silly. I'm getting used to Actions on Google + DialogFlow in the last couple of days. I found out this node package (v2) yesterday and I'm planning to use it for my DialogFlow webhook.

Comments
  • In V2 API, the action name doesn't matter here. Your intent name must be identical to the string you reference in your code, you need to verify that your intent is also named 'myIntent'.
  • What are your imports here, can you include those?