Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Java WhatsApp ChatBot Engine

A dependency for creating complete WhatsApp chatbots with ease using a template-driven approach.

Features

  • Template-Driven Design: By default, you can use YAML | JSON templates for conversational flows. But you can implement your own TemplateStorageManager
  • Hooks for Business Logic: Attach Java classes / spring beans / RESTful endpoints to process messages or actions.
  • Abstracts the API for WhatsApp Cloud: focus on your core chatbot functions.
  • Supports all official WhatsApp message types including Flows
  • Supports dynamic messages with placeholders.
  • Auto configs via properties file
  • Event driven architecture with Spring Events

Setup

For a quick start - Fork the repository and attempt to run the chatbot in the example folder

Developed with Java 17+ using maven

  1. Clone repository
git clone git@github.com:DonnC/jawce.git
  1. Install all project maven dependencies
  • Install main engine dependencies injengine folder
  • Install dependencies for the examples in the example/ folder
  1. Navigate to the example chatbot >example/ehailing/src/main/resources/application.yml properties file and replace configs with your WhatsApp account configs

Checkout the complete local WhatsApp Chatbot Emulator tool!

Engine dependency

Refer to the Example ChatBot for a quick getting started template

To include the jengine in your own project.

In your pom.xml dependencies add the following

<!-- your other dependencies -->

<dependency>
    <groupId>zw.co.dcl.jawce</groupId>
    <artifactId>jengine</artifactId>
    <version>LATEST-VERSION</version>
    <scope>compile</scope>
</dependency>

Make sure you create a rest controller which handles 2 of the important logic

  • webhook verification
  • webhook payload

Checkout the example project for a starting point

Documentation

Visit the official documentation for a detailed guide.

Contributing

We welcome contributions! Please check out the Contributing Guide for details.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Releases

Sponsor this project

Packages

Used by

Contributors

Languages