Dialogflow on Rails - Agent import/export & regression testing

Learn how to integrate Dialogflow, a powerful natural language processing tool, into your Rails projects. Discover how to import and export agents, and how to implement regression testing to ensure your agents are working correctly.

Arnaud Lachaume
Arnaud Lachaume LinkedIn
• 3 min read
Dialogflow on Rails - Agent import/export & regression testing

For those that are not familiar with Dialogflow, it’s a platform that makes it easy to design a conversational user interface that can be easily integrated with a variety of applications (e.g. chatbots 😉). Click here for more on Dialogflow.

So you’ve decided to integrate Dialogflow with your Ruby on Rails application. You’ve created a Dialogflow agent, your code is in place, and you’re ready to deploy your application. Before you do, it’s worth considering how active development will be managed.

Ongoing development requires allowing developers to make changes to the agent. Even small changes to the agent could potentially lead to some unexpected behavior which may initially go unnoticed, especially with more complex conversational flows. To mitigate the risk of errors or application downtime, let’s look at how integration/regression testing can be put in place for the agent itself.

Agent Upload/Download

The following rake task examples can be adapted and used to upload & download the agent as a zip file. We’ll need this to write the regression tests and it also makes it easy to record the state of the agent or reset the agent to a previous state during development.

The rake tasks above make use of the following utility class to assist with zip file manipulation.

Regression Testing

Now that the agent push/pull rake tasks are in place, they can be used to write regression tests.

Here is an example of how they can be set up:

The example above assumes the existence of a directory of JSON files containing testing scenarios. Here is a basic example of how one of these files might look if we wanted to test the behavior of Dialogflow’s prebuilt smalltalk agent, and an example of a more complex scenario with parameter expectations:

Recap

Dialogflow makes it easy to add powerful conversational capabilities to your application. But, with something as complex as natural language processing, integration/regression testing can help you save time, avoid frustration, and make your Dialogflow integration as robust as possible.

I hope the suggestions and examples in this article help you to simplify your development as much as they’ve helped me.

About us

Keypup's SaaS solution allows engineering teams and all software development stakeholders to gain a better understanding of their engineering efforts by combining real-time insights from their development and project management platforms. The solution integrates multiple data sources into a unified database along with a user-friendly dashboard and insights builder interface. Keypup users can customize tried-and-true templates or create their own reports, insights and dashboards to get a full picture of their development operations at a glance, tailored to their specific needs.


Code snippets hosted with ❤ by GitHub.

Banner imagine designed by Designed by zaie / Freepik

‍

Ready to Transform Your Analytics?

Join teams already using AI to make data-driven decisions faster than ever.

Most Recent Articles

The Vulnerability Remediation Tax: How Unattributed Security Patch Work Is Wrecking Your Velocity Metrics

The Vulnerability Remediation Tax: How Unattributed Security Patch Work Is Wrecking Your Velocity Metrics

Every enterprise engineering org absorbs CVE patching, dependency upgrades, and vendor-driven security fixes as "just part of the job" — and none of it shows up on a roadmap. When sprint velocity drops, leadership reads it as a productivity problem. Discover how Keypup MCP surfaces the hidden vulnerability remediation tax, separates it from real engineering decline, and gives leadership the data to staff for it instead of penalizing teams for it.

Liam Davis
The Bus Factor Bomb: How Key-Person Dependency Risk Is Quietly Threatening Your Enterprise Codebase

The Bus Factor Bomb: How Key-Person Dependency Risk Is Quietly Threatening Your Enterprise Codebase

Every enterprise engineering org has at least one critical service that only one person truly understands — and no dashboard tracks it until that person quits, burns out, or goes on leave during an incident. Discover how Keypup MCP quantifies bus factor across your codebase, ranks services by knowledge concentration risk, and gives leadership a data-driven case for pairing and documentation before the exposure becomes an outage.

Stephane Ibos