What you need to know about Symphony’s Bot Developer Kit 2.0

At the dawn of 2021, Symphony launched a new version of its Bot Developer Kit, the BDK 2.0. This toolkit provides the same support as Symphony’s existing SDKs for basic features such as datafeed handling and API bindings but simplifies many aspects like configuration, authentication, real-time events, and message templating. It also includes new advanced features like the Activities API as well as optional framework integration for Spring Boot developers.

This release was a culmination of studying feedback collected at developer events like hackathons and developer meetups over the past year. This feedback was then channeled to our Developer Experience engineering team, based in Sophia Antipolis, who helped to envision and redesign an ideal toolkit. With an emphasis on being simplified and modular, developing bots primed for production while retaining your choice of stack has never been easier.


What does this mean in practice for developers? The BDK 2.0 is essentially an ecosystem of components rather than a single opinionated structure. The core layer builds upon the Symphony REST APIs and provides basic features required to wire up a bot, similar to the role of the existing SDKs. The advanced layer then provides optional abstractions such as the Activities and Message Templating APIs. At the top, the integration layer wraps up BDK 2.0 for use in a framework like Spring Boot so that it feels native to framework developers.

Each of these components is modularized using dependencies, so you are able to swap out a given implementation for your preferred choice. For example, you can toggle between using Apache Freemarker or Handlebars just by changing the message templating dependency in your project. There are other advanced components in the works such as a Workflow API that seeks to ease process automation. Soon, we will launch an open-source initiative that will foster the incubation of more components in this ecosystem.

Getting Started

Creating a BDK 2.0 project scaffold uses the same Yeoman Bot Generator used in the SDKs. Simply issue the command “yo symphony 2.0” and answer a series of questions concerning your environment and project. The generator will proceed to generate an RSA keypair, create the necessary project files including configuration and launch an initial build to ensure everything works. You can then open the project in your favorite editor and immediately launch the bot to test it, essentially getting started in seconds from scratch.

Learn More

We recently ran a series of webinars to demonstrate how easy it is to get started building with BDK 2.0 and you can watch them on-demand from the following links:

You can also dive deeper into our comprehensive certification course available at learn.symphony.com where we cover the BDK 2.0 in detail. This course is free-of-charge and will prepare you for a certification exam where you will qualify to become a Symphony Certified Bot Developer.

Our team is excited to see the possibilities that will emerge from this new tooling and we welcome you to join us on this journey in developing bots for the future. Get started building with BDK 2.0 today!


1. Is it available for Python or .NET users?

At the moment it is only available for Java developers. However, Python and .NET editions will also be released in the coming months.

2. What is the difference between a bot instance and a bot account?

The bot instance is the program running in your infrastructure and the bot account is the service account your administrator defines in the admin console.

3. Is it possible for two bots to talk to each other with only one program?

Absolutely! Being able to manage multiple bot accounts from one instance allows granular control over bot to user interactions, mapping for instance a level of contracts such as freemium, premium, silver, and gold.

4. What is the difference between the old and new versions of BDK?

The BDK has a full mapping to the entire Symphony API provided in an intelligent way to ease coding.

It comes with new services such as message templating where you can plug your own templating engine or use one provided out of the box. A new Activities API, real foundation to implement workflow automation that I will detail later, and also logging and monitoring services to make sure your bot is reliable and make sure you are alerted when something wrong happens.

We know go-to-market is a key factor of success for innovations developer teams are trying to achieve, that’s why we took time to provide smooth integration with development frameworks such as SpringBoot and others, as well as making sure code assistance will provide an intuitive coding experience.

5. Please provide more details on what has been showcased during live demos?

1. Symphony Bot Generator

In order to leverage the Symphony Bot generator, we navigate to our terminal and create a new folder.  Once inside, you can run the command $ yo symphony 2.0. This command launches the Symphony Bot Generator and prompts us with a number of questions to bootstrap our Bot.

2. Ultra Simplified Configuration

The BDK 2.0 provides advanced configuration options for custom environments, proxy servers, load balancing, as well as advanced data feed configuration. In other words, you only configure what you need.

3. RealTimeEventListener

The BDK 2.0 makes it super easy to add custom business logic to your bot through RealTimeEventListeners. All a RealTimeEventListener is, is a custom class that listens for incoming events from the datafeed. Inside of these event listeners is where the bulk of your bot’s business logic will live.

In old versions of the SDK, this same functionality could have taken up to 10 lines of code, so this really demonstrates how the BDK 2.0 makes building bots so much easier.

4. Activities API

The Activities API provided by the BDK 2.0 is used to easily create what we call “activities”, or if you prefer, logical groupings of code corresponding to a bot interaction. Each Activity contains a trigger, context, criteria, and a response.

5. Message Templating

Message templating makes it easy to separate static content from logic, which is necessary for complex messages. The Symphony Bot generator provides a number of freemarker templates out of the box, such as the one referenced in the “/gif” command activity.

Here we see a normal MessageML block that represents a Symphony Form Element. While this is a static example, it can be extended to contain dynamic content and additional logic as it becomes more complex. In addition to freemarker, the BDK 2.0 supports Handlebars templating too!

6. SpringBoot Integration

To leverage the SpringBoot Integration, it’s easiest to start from the Symphony Bot Generator and choose ‘SpringBoot’ as your framework of choice.

With the SpringBoot integration, developers can easily autowire beans through the standard @component annotation.  In addition, the SpringBoot integrations allow you to easily autowire event listener class, BDK services, and Slash activities by annotating your beans with the @Component, @EventListener, @Service, and @Slash respectively.

The BDK is fully supported by a dedicated team, has its own documentation, training courses, and even certification. You can now become a Symphony Certified Bot Developer.

Get started building bots using our new Bot Developer Kit 2.0!

You may also like