Dialogflow CX API: Node.js Client

release level npm version

Cx client for Node.js

A comprehensive list of changes in each version may be found in the CHANGELOG.

Read more about the client libraries for Cloud APIs, including the older Google APIs Client Libraries, in Client Libraries Explained.

Table of contents:

Quickstart

Before you begin

  1. Select or create a Cloud Platform project.
  2. Enable billing for your project.
  3. Enable the Dialogflow CX API API.
  4. Set up authentication with a service account so you can access the API from your local workstation.

Installing the client library

npm install @google-cloud/dialogflow-cx

Using the client library

/**
 * TODO(developer): Uncomment these variables before running the sample.
 */
// const projectId = 'my-project';
// const location = 'global';
// const agentId = 'my-agent';
// const audioFileName = '/path/to/audio.raw';
// const encoding = 'AUDIO_ENCODING_LINEAR_16';
// const sampleRateHertz = 16000;
// const languageCode = 'en'

// Imports the Google Cloud Some API library
const {SessionsClient} = require('@google-cloud/dialogflow-cx');
/**
 * Example for regional endpoint:
 *   const location = 'us-central1'
 *   const client = new SessionsClient({apiEndpoint: 'us-central1-dialogflow.googleapis.com'})
 */
const client = new SessionsClient();

const fs = require('fs');
const util = require('util');
// Assumes uuid module has been installed from npm,
// npm i uuid:
const {v4} = require('uuid');

async function detectIntentAudio() {
  const sessionId = v4();
  const sessionPath = client.projectLocationAgentSessionPath(
    projectId,
    location,
    agentId,
    sessionId
  );

  // Read the content of the audio file and send it as part of the request.
  const readFile = util.promisify(fs.readFile);
  const inputAudio = await readFile(audioFileName);

  const request = {
    session: sessionPath,
    queryInput: {
      audio: {
        config: {
          audioEncoding: encoding,
          sampleRateHertz: sampleRateHertz,
        },
        audio: inputAudio,
      },
      languageCode,
    },
  };
  const [response] = await client.detectIntent(request);
  console.log(`User Query: ${response.queryResult.transcript}`);
  for (const message of response.queryResult.responseMessages) {
    if (message.text) {
      console.log(`Agent Response: ${message.text.text}`);
    }
  }
  if (response.queryResult.match.intent) {
    console.log(
      `Matched Intent: ${response.queryResult.match.intent.displayName}`
    );
  }
  console.log(
    `Current Page: ${response.queryResult.currentPage.displayName}`
  );
}

detectIntentAudio();

Samples

Samples are in the samples/ directory. Each sample's README.md has instructions for running its sample.

SampleSource CodeTry it
Agents.create_agentsource codeOpen in Cloud Shell
Agents.delete_agentsource codeOpen in Cloud Shell
Agents.export_agentsource codeOpen in Cloud Shell
Agents.get_agentsource codeOpen in Cloud Shell
Agents.get_agent_validation_resultsource codeOpen in Cloud Shell
Agents.get_generative_settingssource codeOpen in Cloud Shell
Agents.list_agentssource codeOpen in Cloud Shell
Agents.restore_agentsource codeOpen in Cloud Shell
Agents.update_agentsource codeOpen in Cloud Shell
Agents.update_generative_settingssource codeOpen in Cloud Shell
Agents.validate_agentsource codeOpen in Cloud Shell
Changelogs.get_changelogsource codeOpen in Cloud Shell
Changelogs.list_changelogssource codeOpen in Cloud Shell
Deployments.get_deploymentsource codeOpen in Cloud Shell
Deployments.list_deploymentssource codeOpen in Cloud Shell
Entity_types.create_entity_typesource codeOpen in Cloud Shell
Entity_types.delete_entity_typesource codeOpen in Cloud Shell
Entity_types.get_entity_typesource codeOpen in Cloud Shell
Entity_types.list_entity_typessource codeOpen in Cloud Shell
Entity_types.update_entity_typesource codeOpen in Cloud Shell
Environments.create_environmentsource codeOpen in Cloud Shell
Environments.delete_environmentsource codeOpen in Cloud Shell
Environments.deploy_flowsource codeOpen in Cloud Shell
Environments.get_environmentsource codeOpen in Cloud Shell
Environments.list_continuous_test_resultssource codeOpen in Cloud Shell
Environments.list_environmentssource codeOpen in Cloud Shell
Environments.lookup_environment_historysource codeOpen in Cloud Shell
Environments.run_continuous_testsource codeOpen in Cloud Shell
Environments.update_environmentsource codeOpen in Cloud Shell
Experiments.create_experimentsource codeOpen in Cloud Shell
Experiments.delete_experimentsource codeOpen in Cloud Shell
Experiments.get_experimentsource codeOpen in Cloud Shell
Experiments.list_experimentssource codeOpen in Cloud Shell
Experiments.start_experimentsource codeOpen in Cloud Shell
Experiments.stop_experimentsource codeOpen in Cloud Shell
Experiments.update_experimentsource codeOpen in Cloud Shell
Flows.create_flowsource codeOpen in Cloud Shell
Flows.delete_flowsource codeOpen in Cloud Shell
Flows.export_flowsource codeOpen in Cloud Shell
Flows.get_flowsource codeOpen in Cloud Shell
Flows.get_flow_validation_resultsource codeOpen in Cloud Shell
Flows.import_flowsource codeOpen in Cloud Shell
Flows.list_flowssource codeOpen in Cloud Shell
Flows.train_flowsource codeOpen in Cloud Shell
Flows.update_flowsource codeOpen in Cloud Shell
Flows.validate_flowsource codeOpen in Cloud Shell
Generators.create_generatorsource codeOpen in Cloud Shell
Generators.delete_generatorsource codeOpen in Cloud Shell
Generators.get_generatorsource codeOpen in Cloud Shell
Generators.list_generatorssource codeOpen in Cloud Shell
Generators.update_generatorsource codeOpen in Cloud Shell
Intents.create_intentsource codeOpen in Cloud Shell
Intents.delete_intentsource codeOpen in Cloud Shell
Intents.export_intentssource codeOpen in Cloud Shell
Intents.get_intentsource codeOpen in Cloud Shell
Intents.import_intentssource codeOpen in Cloud Shell
Intents.list_intentssource codeOpen in Cloud Shell
Intents.update_intentsource codeOpen in Cloud Shell
Pages.create_pagesource codeOpen in Cloud Shell
Pages.delete_pagesource codeOpen in Cloud Shell
Pages.get_pagesource codeOpen in Cloud Shell
Pages.list_pagessource codeOpen in Cloud Shell
Pages.update_pagesource codeOpen in Cloud Shell
Security_settings_service.create_security_settingssource codeOpen in Cloud Shell
Security_settings_service.delete_security_settingssource codeOpen in Cloud Shell
Security_settings_service.get_security_settingssource codeOpen in Cloud Shell
Security_settings_service.list_security_settingssource codeOpen in Cloud Shell
Security_settings_service.update_security_settingssource codeOpen in Cloud Shell
Session_entity_types.create_session_entity_typesource codeOpen in Cloud Shell
Session_entity_types.delete_session_entity_typesource codeOpen in Cloud Shell
Session_entity_types.get_session_entity_typesource codeOpen in Cloud Shell
Session_entity_types.list_session_entity_typessource codeOpen in Cloud Shell
Session_entity_types.update_session_entity_typesource codeOpen in Cloud Shell
Sessions.detect_intentsource codeOpen in Cloud Shell
Sessions.fulfill_intentsource codeOpen in Cloud Shell
Sessions.match_intentsource codeOpen in Cloud Shell
Sessions.streaming_detect_intentsource codeOpen in Cloud Shell
Sessions.submit_answer_feedbacksource codeOpen in Cloud Shell
Test_cases.batch_delete_test_casessource codeOpen in Cloud Shell
Test_cases.batch_run_test_casessource codeOpen in Cloud Shell
Test_cases.calculate_coveragesource codeOpen in Cloud Shell
Test_cases.create_test_casesource codeOpen in Cloud Shell
Test_cases.export_test_casessource codeOpen in Cloud Shell
Test_cases.get_test_casesource codeOpen in Cloud Shell
Test_cases.get_test_case_resultsource codeOpen in Cloud Shell
Test_cases.import_test_casessource codeOpen in Cloud Shell
Test_cases.list_test_case_resultssource codeOpen in Cloud Shell
Test_cases.list_test_casessource codeOpen in Cloud Shell
Test_cases.run_test_casesource codeOpen in Cloud Shell
Test_cases.update_test_casesource codeOpen in Cloud Shell
Transition_route_groups.create_transition_route_groupsource codeOpen in Cloud Shell
Transition_route_groups.delete_transition_route_groupsource codeOpen in Cloud Shell
Transition_route_groups.get_transition_route_groupsource codeOpen in Cloud Shell
Transition_route_groups.list_transition_route_groupssource codeOpen in Cloud Shell
Transition_route_groups.update_transition_route_groupsource codeOpen in Cloud Shell
Versions.compare_versionssource codeOpen in Cloud Shell
Versions.create_versionsource codeOpen in Cloud Shell
Versions.delete_versionsource codeOpen in Cloud Shell
Versions.get_versionsource codeOpen in Cloud Shell
Versions.list_versionssource codeOpen in Cloud Shell
Versions.load_versionsource codeOpen in Cloud Shell
Versions.update_versionsource codeOpen in Cloud Shell
Webhooks.create_webhooksource codeOpen in Cloud Shell
Webhooks.delete_webhooksource codeOpen in Cloud Shell
Webhooks.get_webhooksource codeOpen in Cloud Shell
Webhooks.list_webhookssource codeOpen in Cloud Shell
Webhooks.update_webhooksource codeOpen in Cloud Shell
Agents.create_agentsource codeOpen in Cloud Shell
Agents.delete_agentsource codeOpen in Cloud Shell
Agents.export_agentsource codeOpen in Cloud Shell
Agents.get_agentsource codeOpen in Cloud Shell
Agents.get_agent_validation_resultsource codeOpen in Cloud Shell
Agents.get_generative_settingssource codeOpen in Cloud Shell
Agents.list_agentssource codeOpen in Cloud Shell
Agents.restore_agentsource codeOpen in Cloud Shell
Agents.update_agentsource codeOpen in Cloud Shell
Agents.update_generative_settingssource codeOpen in Cloud Shell
Agents.validate_agentsource codeOpen in Cloud Shell
Changelogs.get_changelogsource codeOpen in Cloud Shell
Changelogs.list_changelogssource codeOpen in Cloud Shell
Deployments.get_deploymentsource codeOpen in Cloud Shell
Deployments.list_deploymentssource codeOpen in Cloud Shell
Entity_types.create_entity_typesource codeOpen in Cloud Shell
Entity_types.delete_entity_typesource codeOpen in Cloud Shell
Entity_types.get_entity_typesource codeOpen in Cloud Shell
Entity_types.list_entity_typessource codeOpen in Cloud Shell
Entity_types.update_entity_typesource codeOpen in Cloud Shell
Environments.create_environmentsource codeOpen in Cloud Shell
Environments.delete_environmentsource codeOpen in Cloud Shell
Environments.deploy_flowsource codeOpen in Cloud Shell
Environments.get_environmentsource codeOpen in Cloud Shell
Environments.list_continuous_test_resultssource codeOpen in Cloud Shell
Environments.list_environmentssource codeOpen in Cloud Shell
Environments.lookup_environment_historysource codeOpen in Cloud Shell
Environments.run_continuous_testsource codeOpen in Cloud Shell
Environments.update_environmentsource codeOpen in Cloud Shell
Experiments.create_experimentsource codeOpen in Cloud Shell
Experiments.delete_experimentsource codeOpen in Cloud Shell
Experiments.get_experimentsource codeOpen in Cloud Shell
Experiments.list_experimentssource codeOpen in Cloud Shell
Experiments.start_experimentsource codeOpen in Cloud Shell
Experiments.stop_experimentsource codeOpen in Cloud Shell
Experiments.update_experimentsource codeOpen in Cloud Shell
Flows.create_flowsource codeOpen in Cloud Shell
Flows.delete_flowsource codeOpen in Cloud Shell
Flows.export_flowsource codeOpen in Cloud Shell
Flows.get_flowsource codeOpen in Cloud Shell
Flows.get_flow_validation_resultsource codeOpen in Cloud Shell
Flows.import_flowsource codeOpen in Cloud Shell
Flows.list_flowssource codeOpen in Cloud Shell
Flows.train_flowsource codeOpen in Cloud Shell
Flows.update_flowsource codeOpen in Cloud Shell
Flows.validate_flowsource codeOpen in Cloud Shell
Generators.create_generatorsource codeOpen in Cloud Shell
Generators.delete_generatorsource codeOpen in Cloud Shell
Generators.get_generatorsource codeOpen in Cloud Shell
Generators.list_generatorssource codeOpen in Cloud Shell
Generators.update_generatorsource codeOpen in Cloud Shell
Intents.create_intentsource codeOpen in Cloud Shell
Intents.delete_intentsource codeOpen in Cloud Shell
Intents.export_intentssource codeOpen in Cloud Shell
Intents.get_intentsource codeOpen in Cloud Shell
Intents.import_intentssource codeOpen in Cloud Shell
Intents.list_intentssource codeOpen in Cloud Shell
Intents.update_intentsource codeOpen in Cloud Shell
Pages.create_pagesource codeOpen in Cloud Shell
Pages.delete_pagesource codeOpen in Cloud Shell
Pages.get_pagesource codeOpen in Cloud Shell
Pages.list_pagessource codeOpen in Cloud Shell
Pages.update_pagesource codeOpen in Cloud Shell
Security_settings_service.create_security_settingssource codeOpen in Cloud Shell
Security_settings_service.delete_security_settingssource codeOpen in Cloud Shell
Security_settings_service.get_security_settingssource codeOpen in Cloud Shell
Security_settings_service.list_security_settingssource codeOpen in Cloud Shell
Security_settings_service.update_security_settingssource codeOpen in Cloud Shell
Session_entity_types.create_session_entity_typesource codeOpen in Cloud Shell
Session_entity_types.delete_session_entity_typesource codeOpen in Cloud Shell
Session_entity_types.get_session_entity_typesource codeOpen in Cloud Shell
Session_entity_types.list_session_entity_typessource codeOpen in Cloud Shell
Session_entity_types.update_session_entity_typesource codeOpen in Cloud Shell
Sessions.detect_intentsource codeOpen in Cloud Shell
Sessions.fulfill_intentsource codeOpen in Cloud Shell
Sessions.match_intentsource codeOpen in Cloud Shell
Sessions.streaming_detect_intentsource codeOpen in Cloud Shell
Sessions.submit_answer_feedbacksource codeOpen in Cloud Shell
Test_cases.batch_delete_test_casessource codeOpen in Cloud Shell
Test_cases.batch_run_test_casessource codeOpen in Cloud Shell
Test_cases.calculate_coveragesource codeOpen in Cloud Shell
Test_cases.create_test_casesource codeOpen in Cloud Shell
Test_cases.export_test_casessource codeOpen in Cloud Shell
Test_cases.get_test_casesource codeOpen in Cloud Shell
Test_cases.get_test_case_resultsource codeOpen in Cloud Shell
Test_cases.import_test_casessource codeOpen in Cloud Shell
Test_cases.list_test_case_resultssource codeOpen in Cloud Shell
Test_cases.list_test_casessource codeOpen in Cloud Shell
Test_cases.run_test_casesource codeOpen in Cloud Shell
Test_cases.update_test_casesource codeOpen in Cloud Shell
Transition_route_groups.create_transition_route_groupsource codeOpen in Cloud Shell
Transition_route_groups.delete_transition_route_groupsource codeOpen in Cloud Shell
Transition_route_groups.get_transition_route_groupsource codeOpen in Cloud Shell
Transition_route_groups.list_transition_route_groupssource codeOpen in Cloud Shell
Transition_route_groups.update_transition_route_groupsource codeOpen in Cloud Shell
Versions.compare_versionssource codeOpen in Cloud Shell
Versions.create_versionsource codeOpen in Cloud Shell
Versions.delete_versionsource codeOpen in Cloud Shell
Versions.get_versionsource codeOpen in Cloud Shell
Versions.list_versionssource codeOpen in Cloud Shell
Versions.load_versionsource codeOpen in Cloud Shell
Versions.update_versionsource codeOpen in Cloud Shell
Webhooks.create_webhooksource codeOpen in Cloud Shell
Webhooks.delete_webhooksource codeOpen in Cloud Shell
Webhooks.get_webhooksource codeOpen in Cloud Shell
Webhooks.list_webhookssource codeOpen in Cloud Shell
Webhooks.update_webhooksource codeOpen in Cloud Shell
Quickstartsource codeOpen in Cloud Shell

The Dialogflow CX API Node.js Client API Reference documentation also contains samples.

Supported Node.js Versions

Our client libraries follow the Node.js release schedule. Libraries are compatible with all current active and maintenance versions of Node.js. If you are using an end-of-life version of Node.js, we recommend that you update as soon as possible to an actively supported LTS version.

Google's client libraries support legacy versions of Node.js runtimes on a best-efforts basis with the following warnings:

  • Legacy versions are not tested in continuous integration.
  • Some security patches and features cannot be backported.
  • Dependencies cannot be kept up-to-date.

Client libraries targeting some end-of-life versions of Node.js are available, and can be installed through npm dist-tags. The dist-tags follow the naming convention legacy-(version). For example, npm install @google-cloud/dialogflow-cx@legacy-8 installs client libraries for versions compatible with Node.js 8.

Versioning

This library follows Semantic Versioning.

This library is considered to be stable. The code surface will not change in backwards-incompatible ways unless absolutely necessary (e.g. because of critical security issues) or with an extensive deprecation period. Issues and requests against stable libraries are addressed with the highest priority.

More Information: Google Cloud Platform Launch Stages

Contributing

Contributions welcome! See the Contributing Guide.

Please note that this README.md, the samples/README.md, and a variety of configuration files in this repository (including .nycrc and tsconfig.json) are generated from a central template. To edit one of these files, make an edit to its templates in directory.

License

Apache Version 2.0

See LICENSE