{"id":21639963,"url":"https://github.com/donnc/jawce","last_synced_at":"2025-04-11T16:52:38.968Z","repository":{"id":239328314,"uuid":"799216870","full_name":"DonnC/jawce","owner":"DonnC","description":"A Java WhatsApp Cloud API Engine","archived":false,"fork":false,"pushed_at":"2024-10-21T17:19:47.000Z","size":6699,"stargazers_count":6,"open_issues_count":2,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-22T07:10:01.430Z","etag":null,"topics":["chatbot","engine","java","spring-boot","whatsapp","whatsapp-api"],"latest_commit_sha":null,"homepage":"https://docs.page/donnc/jawce","language":"Java","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/DonnC.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/contributing.mdx","funding":".github/FUNDING.yml","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},"funding":{"custom":["https://www.paypal.me/donnclab","https://wise.com/pay/me/donaldc156"]}},"created_at":"2024-05-11T13:41:24.000Z","updated_at":"2024-10-21T17:23:23.000Z","dependencies_parsed_at":"2024-05-18T10:57:26.282Z","dependency_job_id":"3f2bca25-8cee-45ef-a6e7-48fed02d8e2f","html_url":"https://github.com/DonnC/jawce","commit_stats":null,"previous_names":["donnc/jawce"],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DonnC%2Fjawce","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DonnC%2Fjawce/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DonnC%2Fjawce/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DonnC%2Fjawce/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DonnC","download_url":"https://codeload.github.com/DonnC/jawce/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248443349,"owners_count":21104392,"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":["chatbot","engine","java","spring-boot","whatsapp","whatsapp-api"],"created_at":"2024-11-25T04:15:48.716Z","updated_at":"2025-04-11T16:52:38.960Z","avatar_url":"https://github.com/DonnC.png","language":"Java","funding_links":["https://www.paypal.me/donnclab","https://wise.com/pay/me/donaldc156"],"categories":[],"sub_categories":[],"readme":"# Java WhatsApp ChatBot Engine\nA dependency for creating WhatsApp chatbots using a template-driven approach.\n\nTemplates use YAML allowing you to define conversation flows and business logic in a clean and modular\nway.\n\n## Features\n\n- **Template-Driven Design**: Use YAML templates for conversational flows.\n- **Hooks for Business Logic**: Attach Java classes / RESTful endpoints to process messages or actions.\n- Abstracts the API for WhatsApp Cloud.\n- Supports dynamic messages with placeholders.\n\n## Setup\nFor a quick start - Fork the repository and attempt to run the chatbot in the `example` folder\n\n\u003e Developed with Java 17\n\n1. Clone repository\n```bash\ngit clone git@github.com:DonnC/jawce.git\n```\n2. Install all project maven dependencies\n- Start by installing dependencies in the `jsession` folder\n- Next, install `jengine` folder dependencies\n- Finally install dependencies for the `example/jchabot` folder\n3. Navigate to the example chatbot \u003e`example/jchatbot/src/main/resources/application.yml` properties file \nand replace configs with your WhatsApp account configs\n\n```yaml\nchatbot:\n  configs:\n    # ~ snippet ~\n    hub-token: \"your-webhook-hub-challenge-token\"\n    phone-number-id: \"your-phone-number-id\"\n    access-token: \"your-access-token\"\n```\n4. Configure chatbot resources under the `resources` section\n```yaml\nresources:\n  templates: \"path-to-templates-dir\"\n  triggers: \"path-to-triggers-dir\"\n  watcher: \"path-to-watcher-dir\"\n```\n\nConfigure the full path to where the resources are, for example. \n\nIf you clone the project in `C:\\\\Projects` folder, it will be like below\n```yaml\nresources:\n    templates: C:\\\\Projects\\\\jawce\\\\example\\\\jchatbot\\\\src\\\\main\\\\resources\\\\templates\n    triggers:  C:\\\\Projects\\\\jawce\\\\example\\\\jchatbot\\\\src\\\\main\\\\resources\\\\triggers\n    watcher:   C:\\\\Projects\\\\jawce\\\\example\\\\jchatbot\\\\src\\\\main\\\\resources\\\\watch\n```\n\n\u003e The watcher is used to listen to file changes in the watch dir which will trigger all templates to reload without restarting the service.\n\n### Engine dependency\n\u003e Refer to the [Example ChatBot](https://github.com/DonnC/jawce/tree/main/example/jchatbot) for a quick getting started template\n\nTo include the jengine in your own project.\n\nIn your `pom.xml` dependencies add the following\n\n```xml\n\u003c!-- your other dependencies --\u003e\n\n\u003cdependency\u003e\n    \u003cgroupId\u003ezw.co.dcl.jawce\u003c/groupId\u003e\n    \u003cartifactId\u003ejengine\u003c/artifactId\u003e\n    \u003cversion\u003e1.0.0\u003c/version\u003e\n    \u003cscope\u003ecompile\u003c/scope\u003e\n\u003c/dependency\u003e\n```\n\nMake sure you create a rest controller which handles 2 of the important logic\n- webhook verification\n- webhook payload\n\nCheckout the `example` project for a starting point\n\n## Documentation\n\nVisit the [official documentation](https://docs.page/donnc/wce) for a detailed guide.\n\n## Contributing\n\nWe welcome contributions! Please check out the [Contributing Guide](https://github.com/DonnC/jawce/blob/master/CONTRIBUTING.md) for details.\n\n## License\n\nThis project is licensed under the MIT License. See the [LICENSE](https://github.com/DonnC/jawce/blob/master/LICENCE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdonnc%2Fjawce","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdonnc%2Fjawce","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdonnc%2Fjawce/lists"}