{"id":20427454,"url":"https://github.com/mtwn105/whatsapp-chatbot","last_synced_at":"2025-09-12T18:42:23.384Z","repository":{"id":36968212,"uuid":"498764024","full_name":"mtwn105/whatsapp-chatbot","owner":"mtwn105","description":"AI Powered WhatsApp Chatbot built using WhatsApp API and GPT-3","archived":false,"fork":false,"pushed_at":"2022-07-06T05:01:10.000Z","size":12435,"stargazers_count":51,"open_issues_count":1,"forks_count":16,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-09-01T19:43:37.778Z","etag":null,"topics":["ai","davinci","express","gpt","gpt-3","javascript","machine-learning","ml","nodejs","openapi","whatsapp","whatsapp-api","whatsapp-bot"],"latest_commit_sha":null,"homepage":"","language":"SCSS","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/mtwn105.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-06-01T14:12:01.000Z","updated_at":"2025-07-31T10:50:16.000Z","dependencies_parsed_at":"2022-08-19T17:20:29.114Z","dependency_job_id":null,"html_url":"https://github.com/mtwn105/whatsapp-chatbot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mtwn105/whatsapp-chatbot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtwn105%2Fwhatsapp-chatbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtwn105%2Fwhatsapp-chatbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtwn105%2Fwhatsapp-chatbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtwn105%2Fwhatsapp-chatbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mtwn105","download_url":"https://codeload.github.com/mtwn105/whatsapp-chatbot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtwn105%2Fwhatsapp-chatbot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274856226,"owners_count":25362569,"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","status":"online","status_checked_at":"2025-09-12T02:00:09.324Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["ai","davinci","express","gpt","gpt-3","javascript","machine-learning","ml","nodejs","openapi","whatsapp","whatsapp-api","whatsapp-bot"],"created_at":"2024-11-15T07:20:25.618Z","updated_at":"2025-09-12T18:42:23.343Z","avatar_url":"https://github.com/mtwn105.png","language":"SCSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🐱 Winnie - WhatsApp AI Chatbot\n\n## 🤖 AI Powered Chatbot using GPT-3\n\n**_Chat on WhatsApp with an AI_**\n\n## Demo\n\n![image](https://user-images.githubusercontent.com/12975481/176705058-1c3b8686-1374-4081-80f3-7395a1b95052.png)\n\n## 🔨 Tech Stack\n\n**Server:** Node.JS, Express\n\n**Database:** Redis\n\n**API:** WhatsApp Business Cloud API, OpenAI GPT-3\n\n**Deployment:** Docker, Nginx, Linode\n\n**Misc:** ElasticSearch, Kibana\n\n## ⚙️ Project Structure\n\n**whatsapp-connector:** Whatsapp connector is a microservice which connects a bot to WhatsApp API, handles messaging and incoming requests from WhatsApp\n\n**chatbot:** Chatbot is a microservice which will connect to OpenAI GPT-3 model to answer user queries based on prompt\n\n## 🥣 Meta Configuration\n\nMultiple prerequisites and configuration needs to be done on the Meta Developers, please follow my below guide for details:\n**[https://blog.amitwani.dev/create-a-chatbot-using-whatsapp-cloud-api](https://blog.amitwani.dev/create-a-chatbot-using-whatsapp-cloud-api)**\n\n## 🏃‍♂️ Running Application\n\n- ### Run the application using `docker-compose`\n\n  - **Update Environment Variables**\n\n    - Fill necessary values in `docker-compose-local.yml` file inside `docker` folder for below environment variables:\n      - `VERIFY_TOKEN` - Verify Token for WhatsApp Webhook\n      - `OPENAI_API_KEY` - OpenAI API Key\n      - `WHATSAPP_TOKEN` - WhatsApp Business Permanent/Temporary Authentication Token with `whatsapp_business_messaging` permission\n      - `WHATSAPP_SEND_MESSAGE_API` - WhatsApp Cloud API Send Message API End Point with Phone Number ID\n      - `CHATBOT_URL` - Chatbot microservice api url\n\n  - Run command `docker-compose -f docker-compose.local.yml up -d` inside `docker` folder\n\n- ### Run using `npm`\n\n  - **Install Dependencies**\n\n  Navigate to `whatsapp-connector` and `chatbot` to install their dependecies.\n\n  ```bash\n    npm install\n  ```\n\n  or\n\n  ```bash\n    yarn add\n  ```\n\n  - **Update Environment Variables**\n\n    - Create `.env` file by copying `.env.sample` in both microservices\n    - Fill necessary values for below environment variables:\n      - `VERIFY_TOKEN` - Verify Token for WhatsApp Webhook\n      - `OPENAI_API_KEY` - OpenAI API Key\n      - `WHATSAPP_TOKEN` - WhatsApp Business Permanent/Temporary Authentication Token with `whatsapp_business_messaging` permission\n      - `WHATSAPP_SEND_MESSAGE_API` - WhatsApp Cloud API Send Message API End Point with Phone Number ID\n      - `CHATBOT_URL` - Chatbot microservice api url\n\n  - **Run the Server**\n\n  ```bash\n      npm run start\n  ```\n\n## 🛳️ Deployment\n\nDeploy with Docker easily using the `Dockerfile` provided in the respective services folder or the `docker-compose.yml` in the `docker` folder\n\n## 👷 CI/CD\n\nGitHub Actions is used to create a CI/CD workflow specified in the `workflow.yml`. \n\n### Workflow\n\n- On every commit on `main` branch\n- Build Docker Images of both microservices\n- Push Docker Images of both microservices to docker repository\n- Update `docker-compose.yml` by replacing environment varibles from GitHub secrets\n- Copying `docker-compose.yml` and `nginx.conf` to the server\n- Running `docker-compose` command to recreate containers\n- Deployment is done \n\n## Acknowledgements\n\n- [Linode](https://linode.com)\n- [Hashnode](https://hashnode.com)\n\n## Feedback\n\nIf you have any feedback, please reach out to me at mtwn105@gmail.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmtwn105%2Fwhatsapp-chatbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmtwn105%2Fwhatsapp-chatbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmtwn105%2Fwhatsapp-chatbot/lists"}