Bypass custom payload from Whatsapp API or custom integration to dialogflow ES API

Viewed 30

I use a Dialogflow API as NLP and the interface that we use is Whatsapp API. my problem is, when I want to bypass Text and Whatsapp client number to Dialogflow (my reference), I didn't found document to explain that. for comparison, the Telegram official integration dialogflow, from the body request we can extract that data like name and Telegram user ID.

  const sessionId = phone_number_id; //session ID get from phone number
  const sessionPath = sessionClient.projectAgentSessionPath(projectId, sessionId);

  const request = {
    session: sessionPath,
    queryInput: {
      text: {
        text: msg_body,
        languageCode: "id-ID"
      },
    },
    payload: {
      data: "testing",
      phoneNumber : phone_number_id
    }
  };
  console.log("request", request);
  await sessionClient.detectIntent(request).then(responses => {
    console.log("DetectIntent", JSON.stringify(responses));
  }).catch(err => {
    console.error("ERROR:", err);
  })

I tried it with request variable like that but in request body in dialogflow fulfillment, it never showed up

{
"responseId": "censored",
"queryResult": {
    "queryText": "halo",
    "action": "input.welcome",
    "parameters": {},
    "allRequiredParamsPresent": true,
    "fulfillmentText": "error",
    "fulfillmentMessages": [
        {
            "text": {
                "text": [
                    "error"
                ]
            }
        }
    ],
    "outputContexts": [
        {
            "name": "censored",
            "parameters": {
                "no-input": 0,
                "no-match": 0
            }
        }
    ],
    "intent": {
        "name": "censored",
        "displayName": "Default Welcome Intent"
    },
    "intentDetectionConfidence": 1,
    "languageCode": "id"
},
"originalDetectIntentRequest": {
    "payload": {}
},
"session": "censored"

}

0 Answers
Related