A collection of useful tools that Google Dialogflow (CX) does not implement itself; accessed via the Dialogflow API.
git clone
the repository to a local directory- Create a
config.json
and place inside it an object with the following properties:name
— The name of this configuration (optional, e.g. agent name)projectID
— Google Cloud project IDlocationID
— Chatbot location ID (supported location IDs are the keys of theendpoints
object inapiSettings.json
)agentID
— Specific agent ID
- If desired, create multiple of the above object types and place them in an array within
config.json
to have multiple configs to choose between- If necessary, edit
apiSettings.json
to change the endpoint, version, or login scopes. This generally shouldn't be required (and choosing a different API version may break some or all of the tools).
- If necessary, edit
- Create a service account key on Google Cloud and download the key JSON file. Rename it to
key.json
and place it in this directory. - Run
npm i
to install dependencies node .
to run the tools application. It will guide you through choosing config, tools, etc.
According to the quotas and limits page, Dialogflow CX edition limits API usage to 60 requests per minute for "Design-time requests" and 100 requests per minute for "Other session requests." These have no hard limits beyond these per-minute caps. Since this program should only be calling endpoints that fall under these two categories, API quotas should never be a problem when using these tools.
This section may become out of date as development continues. Run the program (or look in the tools
folder) to see all available tools.
Lists all intents without training phrases for the logged-in agent.
Saves all phrases (from all or one specific intent) to a file of your choice. Useful for importing back into Dialogflow on another agent, for example (note: if exporting all intents, you must manually separate intents out into other files. Support for create a file per intent may be added in the future).
If time (and development constraints) allow, I'll hopefully add the following tools/features:
- Sync: For syncing, from one config to another, an intent, phrases, an entity, or other useful types
- Additionally, syncing route groups across flows within an agent
- Cache: Keeping a cache of previous requests in the current session, so you can choose, for example, from a previous list of intents which intent you'd like to save.
- Whatever else sounds useful!
I'm Nikolas Brandt!
I have not yet decided licensing. For now, basic US copyright law holds.