{"id":15524398,"url":"https://github.com/codeforequity-at/botium-connector-dialogflowcx","last_synced_at":"2025-04-23T07:31:32.559Z","repository":{"id":52277473,"uuid":"331267477","full_name":"codeforequity-at/botium-connector-dialogflowcx","owner":"codeforequity-at","description":"Botium Connector for Dialogflow CX","archived":false,"fork":false,"pushed_at":"2025-04-15T10:19:43.000Z","size":152,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-15T11:31:03.792Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/codeforequity-at.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-01-20T10:13:26.000Z","updated_at":"2025-04-15T10:19:47.000Z","dependencies_parsed_at":"2024-05-13T08:40:43.401Z","dependency_job_id":"f6708b28-7730-4fc1-a824-8cde131d74ee","html_url":"https://github.com/codeforequity-at/botium-connector-dialogflowcx","commit_stats":{"total_commits":42,"total_committers":3,"mean_commits":14.0,"dds":0.5,"last_synced_commit":"f349e2cd081ca3301b6e3b26eb04aba308ef9bb4"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeforequity-at%2Fbotium-connector-dialogflowcx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeforequity-at%2Fbotium-connector-dialogflowcx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeforequity-at%2Fbotium-connector-dialogflowcx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeforequity-at%2Fbotium-connector-dialogflowcx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codeforequity-at","download_url":"https://codeload.github.com/codeforequity-at/botium-connector-dialogflowcx/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250391259,"owners_count":21422865,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-02T10:51:09.608Z","updated_at":"2025-04-23T07:31:32.550Z","avatar_url":"https://github.com/codeforequity-at.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"﻿# Botium Connector for Google Dialogflow CX\r\n\r\n[![NPM](https://nodei.co/npm/botium-connector-dialogflowcx.png?downloads=true\u0026downloadRank=true\u0026stars=true)](https://nodei.co/npm/botium-connector-dialogflowcx/)\r\n\r\n[![npm version](https://badge.fury.io/js/botium-connector-dialogflowcx.svg)](https://badge.fury.io/js/botium-connector-dialogflowcx)\r\n[![license](https://img.shields.io/github/license/mashape/apistatus.svg)]()\r\n\r\nThis is a [Botium](https://github.com/codeforequity-at/botium-core) connector for testing your Dialogflow CX Agents.\r\n\r\n__Did you read the [Botium in a Nutshell](https://medium.com/@floriantreml/botium-in-a-nutshell-part-1-overview-f8d0ceaf8fb4) articles ? Be warned, without prior knowledge of Botium you won't be able to properly use this library!__\r\n\r\n## How it works ?\r\nBotium runs your conversations against the Dialogflow CX API.\r\n\r\nIt can be used as any other Botium connector with all Botium Stack components:\r\n  * [Botium CLI](https://github.com/codeforequity-at/botium-cli/)\r\n  * [Botium Bindings](https://github.com/codeforequity-at/botium-bindings/)\r\n  * [Botium Box](https://www.botium.ai)\r\n\r\n## Requirements\r\n\r\n* __Node.js and NPM__\r\n* a __Dialogflow CX__ agent, and user account with administrative rights\r\n* a __project directory__ on your workstation to hold test cases and Botium configuration\r\n\r\n## Install Botium and Dialogflow CX Connector\r\n\r\nWhen using __Botium CLI__:\r\n\r\n```\r\n\u003e npm install -g botium-cli\r\n\u003e npm install -g botium-connector-dialogflowcx\r\n\u003e botium-cli init\r\n\u003e botium-cli run\r\n```\r\n\r\nWhen using __Botium Bindings__:\r\n\r\n```\r\n\u003e npm install -g botium-bindings\r\n\u003e npm install -g botium-connector-dialogflowcx\r\n\u003e botium-bindings init mocha\r\n\u003e npm install \u0026\u0026 npm run mocha\r\n```\r\n\r\nWhen using __Botium Box__:\r\n\r\n_Already integrated into Botium Box, no setup required_\r\n\r\n## Connecting Dialogflow Agent to Botium\r\n\r\nOpen the file _botium.json_ in your working directory and add the [Google credentials](https://cloud.google.com/docs/authentication/getting-started) for accessing your Dialogflow agent. Project Id, Agent Id and Location can be found in the [Dialogflow CX Console](https://cloud.google.com/dialogflow/cx/docs/quick/api).\r\n\r\nFollowing permissions/roles are required to use botium:\r\n\r\n### To test:\r\n#### Permission:\r\ndialogflow.sessions.detectIntent\r\n#### We suggest to use one of the following roles:\r\nroles/dialogflow.client\r\nroles/dialogflow.consoleSimulatorUser\r\n\r\n###  To use downloader (optional):\r\n#### Permissions:\r\ndialogflow.intents.list\r\ndialogflow.agents.get\r\ndialogflow.flows.get\r\ndialogflow.pages.get\r\n#### Many roles can be good, for example\r\nroles/dialogflow.aamViewer\r\n### To use uploader (optional):\r\n#### Permissions:\r\ndialogflow.intents.*\r\n#### Following role have this permission:\r\nroles/dialogflow.intentAdmin\r\n\r\nYou can read about Google Dialogflow roles [here](https://cloud.google.com/iam/docs/understanding-roles#dialogflow-roles) \r\n\r\n```\r\n{\r\n  \"botium\": {\r\n    \"Capabilities\": {\r\n      \"PROJECTNAME\": \"\u003cwhatever\u003e\",\r\n      \"CONTAINERMODE\": \"dialogflowcx\",\r\n      \"DIALOGFLOWCX_PROJECT_ID\": \"\u003cgoogle project id\u003e\",\r\n      \"DIALOGFLOWCX_AGENT_ID\": \"\u003cagent id\u003e\",\r\n      \"DIALOGFLOWCX_LOCATION\": \"\u003clocation\u003e\",\r\n      \"DIALOGFLOWCX_CLIENT_EMAIL\": \"\u003cservice credentials email\u003e\",\r\n      \"DIALOGFLOWCX_PRIVATE_KEY\": \"\u003cservice credentials private key\u003e\"\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n## Supported Capabilities\r\n\r\nSet the capability __CONTAINERMODE__ to __dialogflowcx__ to activate this connector.\r\n\r\n### DIALOGFLOWCX_PROJECT_ID\r\n\r\nGoogle project id.\r\n\r\n### DIALOGFLOWCX_LOCATION\r\n\r\nLocation\r\n\r\n### DIALOGFLOWCX_AGENT_ID\r\n\r\nLocation\r\n\r\n### DIALOGFLOWCX_ENVIRONMENT\r\n\r\nDialogflow publishing environment name. See [This article](https://cloud.google.com/dialogflow/cx/docs/concept/version)\r\n\r\n### DIALOGFLOWCX_CLIENT_EMAIL\r\n_Optional_\r\n\r\nGoogle client email. If not given, [Google default authentication](https://cloud.google.com/docs/authentication/getting-started) will be used.\r\n\r\n### DIALOGFLOWCX_PRIVATE_KEY\r\n_Optional_\r\n\r\nGoogle private key. If not given, [Google default authentication](https://cloud.google.com/docs/authentication/getting-started) will be used.\r\n\r\n### DIALOGFLOWCX_LANGUAGE_CODE\r\n\r\nThe language of this conversational query. See [all languages](https://dialogflow.com/docs/reference/language).\r\n\r\n### DIALOGFLOWCX_QUERY_PARAMS\r\n\r\nQuery parameters as JSON struct.\r\n\r\n### DIALOGFLOWCX_WELCOME_TEXT\r\n\r\nWelcome text(s) to send to the Dialogflow CX agent for initiating the session.\r\n\r\nIt is possible to send button/event instead of text\r\n```\r\n\"DIALOGFLOWCX_WELCOME_TEXT\": {\"buttons\": [{\"payload\": \"MyCustomEvent\"}]}\r\n```\r\n\r\n### DIALOGFLOWCX_AUTH_MODE\r\n\r\nAuthentication Mode. \"Service Account\", or \"OAuth2\"\r\n\r\n### DIALOGFLOWCX_OAUTH2_CLIENT_ID\r\n\r\nClient ID for OAuth2 authentication. See [Google OAuth2 Client](https://developers.google.com/identity/protocols/oauth2/web-server#creatingcred)\r\n\r\n### DIALOGFLOWCX_OAUTH2_CLIENT_SECRET\r\n\r\nClient secret for OAuth2 authentication. See [Google OAuth2 Client](https://developers.google.com/identity/protocols/oauth2/web-server#creatingcred)\r\n\r\n### DIALOGFLOWCX_REFRESH_TOKEN\r\n\r\nOAuth2 refresh token. Generated by configuring OAuth2 in Botium Box, or via [oauth2Authenticator.js](src/oauth2Authenticator.js)\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodeforequity-at%2Fbotium-connector-dialogflowcx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodeforequity-at%2Fbotium-connector-dialogflowcx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodeforequity-at%2Fbotium-connector-dialogflowcx/lists"}