Google Cloud Platform logo

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.

Sample Source Code Try it
Agents.create_agent source code Open in Cloud Shell
Agents.delete_agent source code Open in Cloud Shell
Agents.export_agent source code Open in Cloud Shell
Agents.get_agent source code Open in Cloud Shell
Agents.get_agent_validation_result source code Open in Cloud Shell
Agents.get_generative_settings source code Open in Cloud Shell
Agents.list_agents source code Open in Cloud Shell
Agents.restore_agent source code Open in Cloud Shell
Agents.update_agent source code Open in Cloud Shell
Agents.update_generative_settings source code Open in Cloud Shell
Agents.validate_agent source code Open in Cloud Shell
Changelogs.get_changelog source code Open in Cloud Shell
Changelogs.list_changelogs source code Open in Cloud Shell
Deployments.get_deployment source code Open in Cloud Shell
Deployments.list_deployments source code Open in Cloud Shell
Entity_types.create_entity_type source code Open in Cloud Shell
Entity_types.delete_entity_type source code Open in Cloud Shell
Entity_types.export_entity_types source code Open in Cloud Shell
Entity_types.get_entity_type source code Open in Cloud Shell
Entity_types.import_entity_types source code Open in Cloud Shell
Entity_types.list_entity_types source code Open in Cloud Shell
Entity_types.update_entity_type source code Open in Cloud Shell
Environments.create_environment source code Open in Cloud Shell
Environments.delete_environment source code Open in Cloud Shell
Environments.deploy_flow source code Open in Cloud Shell
Environments.get_environment source code Open in Cloud Shell
Environments.list_continuous_test_results source code Open in Cloud Shell
Environments.list_environments source code Open in Cloud Shell
Environments.lookup_environment_history source code Open in Cloud Shell
Environments.run_continuous_test source code Open in Cloud Shell
Environments.update_environment source code Open in Cloud Shell
Experiments.create_experiment source code Open in Cloud Shell
Experiments.delete_experiment source code Open in Cloud Shell
Experiments.get_experiment source code Open in Cloud Shell
Experiments.list_experiments source code Open in Cloud Shell
Experiments.start_experiment source code Open in Cloud Shell
Experiments.stop_experiment source code Open in Cloud Shell
Experiments.update_experiment source code Open in Cloud Shell
Flows.create_flow source code Open in Cloud Shell
Flows.delete_flow source code Open in Cloud Shell
Flows.export_flow source code Open in Cloud Shell
Flows.get_flow source code Open in Cloud Shell
Flows.get_flow_validation_result source code Open in Cloud Shell
Flows.import_flow source code Open in Cloud Shell
Flows.list_flows source code Open in Cloud Shell
Flows.train_flow source code Open in Cloud Shell
Flows.update_flow source code Open in Cloud Shell
Flows.validate_flow source code Open in Cloud Shell
Generators.create_generator source code Open in Cloud Shell
Generators.delete_generator source code Open in Cloud Shell
Generators.get_generator source code Open in Cloud Shell
Generators.list_generators source code Open in Cloud Shell
Generators.update_generator source code Open in Cloud Shell
Intents.create_intent source code Open in Cloud Shell
Intents.delete_intent source code Open in Cloud Shell
Intents.export_intents source code Open in Cloud Shell
Intents.get_intent source code Open in Cloud Shell
Intents.import_intents source code Open in Cloud Shell
Intents.list_intents source code Open in Cloud Shell
Intents.update_intent source code Open in Cloud Shell
Pages.create_page source code Open in Cloud Shell
Pages.delete_page source code Open in Cloud Shell
Pages.get_page source code Open in Cloud Shell
Pages.list_pages source code Open in Cloud Shell
Pages.update_page source code Open in Cloud Shell
Security_settings_service.create_security_settings source code Open in Cloud Shell
Security_settings_service.delete_security_settings source code Open in Cloud Shell
Security_settings_service.get_security_settings source code Open in Cloud Shell
Security_settings_service.list_security_settings source code Open in Cloud Shell
Security_settings_service.update_security_settings source code Open in Cloud Shell
Session_entity_types.create_session_entity_type source code Open in Cloud Shell
Session_entity_types.delete_session_entity_type source code Open in Cloud Shell
Session_entity_types.get_session_entity_type source code Open in Cloud Shell
Session_entity_types.list_session_entity_types source code Open in Cloud Shell
Session_entity_types.update_session_entity_type source code Open in Cloud Shell
Sessions.detect_intent source code Open in Cloud Shell
Sessions.fulfill_intent source code Open in Cloud Shell
Sessions.match_intent source code Open in Cloud Shell
Sessions.server_streaming_detect_intent source code Open in Cloud Shell
Sessions.streaming_detect_intent source code Open in Cloud Shell
Sessions.submit_answer_feedback source code Open in Cloud Shell
Test_cases.batch_delete_test_cases source code Open in Cloud Shell
Test_cases.batch_run_test_cases source code Open in Cloud Shell
Test_cases.calculate_coverage source code Open in Cloud Shell
Test_cases.create_test_case source code Open in Cloud Shell
Test_cases.export_test_cases source code Open in Cloud Shell
Test_cases.get_test_case source code Open in Cloud Shell
Test_cases.get_test_case_result source code Open in Cloud Shell
Test_cases.import_test_cases source code Open in Cloud Shell
Test_cases.list_test_case_results source code Open in Cloud Shell
Test_cases.list_test_cases source code Open in Cloud Shell
Test_cases.run_test_case source code Open in Cloud Shell
Test_cases.update_test_case source code Open in Cloud Shell
Transition_route_groups.create_transition_route_group source code Open in Cloud Shell
Transition_route_groups.delete_transition_route_group source code Open in Cloud Shell
Transition_route_groups.get_transition_route_group source code Open in Cloud Shell
Transition_route_groups.list_transition_route_groups source code Open in Cloud Shell
Transition_route_groups.update_transition_route_group source code Open in Cloud Shell
Versions.compare_versions source code Open in Cloud Shell
Versions.create_version source code Open in Cloud Shell
Versions.delete_version source code Open in Cloud Shell
Versions.get_version source code Open in Cloud Shell
Versions.list_versions source code Open in Cloud Shell
Versions.load_version source code Open in Cloud Shell
Versions.update_version source code Open in Cloud Shell
Webhooks.create_webhook source code Open in Cloud Shell
Webhooks.delete_webhook source code Open in Cloud Shell
Webhooks.get_webhook source code Open in Cloud Shell
Webhooks.list_webhooks source code Open in Cloud Shell
Webhooks.update_webhook source code Open in Cloud Shell
Agents.create_agent source code Open in Cloud Shell
Agents.delete_agent source code Open in Cloud Shell
Agents.export_agent source code Open in Cloud Shell
Agents.get_agent source code Open in Cloud Shell
Agents.get_agent_validation_result source code Open in Cloud Shell
Agents.get_generative_settings source code Open in Cloud Shell
Agents.list_agents source code Open in Cloud Shell
Agents.restore_agent source code Open in Cloud Shell
Agents.update_agent source code Open in Cloud Shell
Agents.update_generative_settings source code Open in Cloud Shell
Agents.validate_agent source code Open in Cloud Shell
Changelogs.get_changelog source code Open in Cloud Shell
Changelogs.list_changelogs source code Open in Cloud Shell
Conversation_history.delete_conversation source code Open in Cloud Shell
Conversation_history.get_conversation source code Open in Cloud Shell
Conversation_history.list_conversations source code Open in Cloud Shell
Deployments.get_deployment source code Open in Cloud Shell
Deployments.list_deployments source code Open in Cloud Shell
Entity_types.create_entity_type source code Open in Cloud Shell
Entity_types.delete_entity_type source code Open in Cloud Shell
Entity_types.export_entity_types source code Open in Cloud Shell
Entity_types.get_entity_type source code Open in Cloud Shell
Entity_types.import_entity_types source code Open in Cloud Shell
Entity_types.list_entity_types source code Open in Cloud Shell
Entity_types.update_entity_type source code Open in Cloud Shell
Environments.create_environment source code Open in Cloud Shell
Environments.delete_environment source code Open in Cloud Shell
Environments.deploy_flow source code Open in Cloud Shell
Environments.get_environment source code Open in Cloud Shell
Environments.list_continuous_test_results source code Open in Cloud Shell
Environments.list_environments source code Open in Cloud Shell
Environments.lookup_environment_history source code Open in Cloud Shell
Environments.run_continuous_test source code Open in Cloud Shell
Environments.update_environment source code Open in Cloud Shell
Examples.create_example source code Open in Cloud Shell
Examples.delete_example source code Open in Cloud Shell
Examples.get_example source code Open in Cloud Shell
Examples.list_examples source code Open in Cloud Shell
Examples.update_example source code Open in Cloud Shell
Experiments.create_experiment source code Open in Cloud Shell
Experiments.delete_experiment source code Open in Cloud Shell
Experiments.get_experiment source code Open in Cloud Shell
Experiments.list_experiments source code Open in Cloud Shell
Experiments.start_experiment source code Open in Cloud Shell
Experiments.stop_experiment source code Open in Cloud Shell
Experiments.update_experiment source code Open in Cloud Shell
Flows.create_flow source code Open in Cloud Shell
Flows.delete_flow source code Open in Cloud Shell
Flows.export_flow source code Open in Cloud Shell
Flows.get_flow source code Open in Cloud Shell
Flows.get_flow_validation_result source code Open in Cloud Shell
Flows.import_flow source code Open in Cloud Shell
Flows.list_flows source code Open in Cloud Shell
Flows.train_flow source code Open in Cloud Shell
Flows.update_flow source code Open in Cloud Shell
Flows.validate_flow source code Open in Cloud Shell
Generators.create_generator source code Open in Cloud Shell
Generators.delete_generator source code Open in Cloud Shell
Generators.get_generator source code Open in Cloud Shell
Generators.list_generators source code Open in Cloud Shell
Generators.update_generator source code Open in Cloud Shell
Intents.create_intent source code Open in Cloud Shell
Intents.delete_intent source code Open in Cloud Shell
Intents.export_intents source code Open in Cloud Shell
Intents.get_intent source code Open in Cloud Shell
Intents.import_intents source code Open in Cloud Shell
Intents.list_intents source code Open in Cloud Shell
Intents.update_intent source code Open in Cloud Shell
Pages.create_page source code Open in Cloud Shell
Pages.delete_page source code Open in Cloud Shell
Pages.get_page source code Open in Cloud Shell
Pages.list_pages source code Open in Cloud Shell
Pages.update_page source code Open in Cloud Shell
Playbooks.create_playbook source code Open in Cloud Shell
Playbooks.create_playbook_version source code Open in Cloud Shell
Playbooks.delete_playbook source code Open in Cloud Shell
Playbooks.delete_playbook_version source code Open in Cloud Shell
Playbooks.get_playbook source code Open in Cloud Shell
Playbooks.get_playbook_version source code Open in Cloud Shell
Playbooks.list_playbook_versions source code Open in Cloud Shell
Playbooks.list_playbooks source code Open in Cloud Shell
Playbooks.update_playbook source code Open in Cloud Shell
Security_settings_service.create_security_settings source code Open in Cloud Shell
Security_settings_service.delete_security_settings source code Open in Cloud Shell
Security_settings_service.get_security_settings source code Open in Cloud Shell
Security_settings_service.list_security_settings source code Open in Cloud Shell
Security_settings_service.update_security_settings source code Open in Cloud Shell
Session_entity_types.create_session_entity_type source code Open in Cloud Shell
Session_entity_types.delete_session_entity_type source code Open in Cloud Shell
Session_entity_types.get_session_entity_type source code Open in Cloud Shell
Session_entity_types.list_session_entity_types source code Open in Cloud Shell
Session_entity_types.update_session_entity_type source code Open in Cloud Shell
Sessions.detect_intent source code Open in Cloud Shell
Sessions.fulfill_intent source code Open in Cloud Shell
Sessions.match_intent source code Open in Cloud Shell
Sessions.server_streaming_detect_intent source code Open in Cloud Shell
Sessions.streaming_detect_intent source code Open in Cloud Shell
Sessions.submit_answer_feedback source code Open in Cloud Shell
Test_cases.batch_delete_test_cases source code Open in Cloud Shell
Test_cases.batch_run_test_cases source code Open in Cloud Shell
Test_cases.calculate_coverage source code Open in Cloud Shell
Test_cases.create_test_case source code Open in Cloud Shell
Test_cases.export_test_cases source code Open in Cloud Shell
Test_cases.get_test_case source code Open in Cloud Shell
Test_cases.get_test_case_result source code Open in Cloud Shell
Test_cases.import_test_cases source code Open in Cloud Shell
Test_cases.list_test_case_results source code Open in Cloud Shell
Test_cases.list_test_cases source code Open in Cloud Shell
Test_cases.run_test_case source code Open in Cloud Shell
Test_cases.update_test_case source code Open in Cloud Shell
Tools.create_tool source code Open in Cloud Shell
Tools.delete_tool source code Open in Cloud Shell
Tools.export_tools source code Open in Cloud Shell
Tools.get_tool source code Open in Cloud Shell
Tools.list_tools source code Open in Cloud Shell
Tools.update_tool source code Open in Cloud Shell
Transition_route_groups.create_transition_route_group source code Open in Cloud Shell
Transition_route_groups.delete_transition_route_group source code Open in Cloud Shell
Transition_route_groups.get_transition_route_group source code Open in Cloud Shell
Transition_route_groups.list_transition_route_groups source code Open in Cloud Shell
Transition_route_groups.update_transition_route_group source code Open in Cloud Shell
Versions.compare_versions source code Open in Cloud Shell
Versions.create_version source code Open in Cloud Shell
Versions.delete_version source code Open in Cloud Shell
Versions.get_version source code Open in Cloud Shell
Versions.list_versions source code Open in Cloud Shell
Versions.load_version source code Open in Cloud Shell
Versions.update_version source code Open in Cloud Shell
Webhooks.create_webhook source code Open in Cloud Shell
Webhooks.delete_webhook source code Open in Cloud Shell
Webhooks.get_webhook source code Open in Cloud Shell
Webhooks.list_webhooks source code Open in Cloud Shell
Webhooks.update_webhook source code Open in Cloud Shell
Quickstart source code Open 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