{"id":20980502,"url":"https://github.com/hyperjumptech/whatsapp-chatbot-connector","last_synced_at":"2026-03-01T14:32:17.536Z","repository":{"id":242838953,"uuid":"810710907","full_name":"hyperjumptech/whatsapp-chatbot-connector","owner":"hyperjumptech","description":null,"archived":false,"fork":false,"pushed_at":"2025-09-30T04:13:53.000Z","size":672,"stargazers_count":32,"open_issues_count":5,"forks_count":18,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-09-30T04:20:37.267Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hyperjumptech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-06-05T08:09:19.000Z","updated_at":"2025-09-30T04:13:56.000Z","dependencies_parsed_at":"2024-06-24T06:23:29.452Z","dependency_job_id":"e9ca6fa4-0fe5-471d-b82e-ef8e066ad1b2","html_url":"https://github.com/hyperjumptech/whatsapp-chatbot-connector","commit_stats":null,"previous_names":["hyperjumptech/whatsapp-chatbot-connector"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hyperjumptech/whatsapp-chatbot-connector","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperjumptech%2Fwhatsapp-chatbot-connector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperjumptech%2Fwhatsapp-chatbot-connector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperjumptech%2Fwhatsapp-chatbot-connector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperjumptech%2Fwhatsapp-chatbot-connector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hyperjumptech","download_url":"https://codeload.github.com/hyperjumptech/whatsapp-chatbot-connector/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperjumptech%2Fwhatsapp-chatbot-connector/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29970975,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T14:11:48.712Z","status":"ssl_error","status_checked_at":"2026-03-01T14:11:48.352Z","response_time":124,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2024-11-19T05:28:56.406Z","updated_at":"2026-03-01T14:32:17.519Z","avatar_url":"https://github.com/hyperjumptech.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Code Quality](https://github.com/hyperjumptech/whatsapp-chatbot-connector/actions/workflows/code-quality.yml/badge.svg)](https://github.com/hyperjumptech/whatsapp-chatbot-connector/actions/workflows/code-quality.yml)\n\n# WhatsApp Chatbot Connector\n\nThis project is a WhatsApp Chatbot Connector backend built using Express.js. It is designed to integrate with the WhatsApp Business API and supports various AI platforms such as Dify and Rasa.\n\nHere is the diagram to understand the flow:\n![diagram](./docs/diagram.png)\n\n## Features\n\n- Webhook endpoint to receive messages from WhatsApp\n- Integration with Dify and Rasa for natural language processing and response generation\n- Displaying interactive whatsapp message like [List](https://developers.facebook.com/docs/whatsapp/cloud-api/messages/interactive-list-messages), [Reply Buttons](https://developers.facebook.com/docs/whatsapp/cloud-api/messages/interactive-reply-buttons-messages), and [Flow](https://developers.facebook.com/docs/whatsapp/cloud-api/messages/interactive-flow-messages)\n\n## Prerequisites\n\nEnsure you have the following installed:\n\nNode.js (v18.x or later)\nnpm (v10.x or later)\n\n## Getting Started\n\n### Quick Start\n\n1. Clone the Repository\n\n```bash\ngit clone https://github.com/hyperjumptech/whatsapp-chatbot-connector.git\ncd whatsapp-chatbot-connector\n```\n\n2. Install Dependencies\n\n```bash\nnpm install\n```\n\n3. Set Environment Variables\n\n```bash\ncp .env.example .env\n```\n\nthen fill in the appropriate values in the .env file.\n\nChoose to connect to which platform by filling the `CONNECTION_PLATFORM` variable in the .env file.\n\n```\nCONNECTION_PLATFORM=dify\n```\n\nor\n\n```\nCONNECTION_PLATFORM=rasa\n```\n\n4. Running the Server\n\n```bash\nnpm run dev\n```\n\n5. Set callback URL in WhatsApp Business API\n\nIn the WhatsApp Business API, go to the **Configuration** menu and fine the **Callback URL**. Detail on the [picture below](#whatsapp-business-api-configuration), poin **number 7**\n\n\u003e Note that the url must use https\n\nSo if you are running on local, you can use [ngrok](https://ngrok.com/docs/getting-started/) to get a public URL with https for your local server.\n\n6. Send text message to the WhatsApp Business API\n\nNow just use your WhatsApp app to send a text message to the WhatsApp Business number and you will see the response from the chatbot connected.\n\n### Optional Development Dependencies\n\nTo start up the optional development dependecies like Redis, you can use Docker .\n\nGo to folder `.dev` then\n\n```\ndocker compose up -d\n```\n\n## Environment Variables\n\n| Variable Name             | Description                                                                                                                                           | Example                                     |\n| ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------- |\n| NODE_ENV                  | Environment variable to set the node environment.                                                                                                     | development                                 |\n| WEBHOOK_VERIFY_TOKEN      | Webhook verification token. The value should be the same as the one you set in the WhatsApp Business API. Detail in picture below, poin **number 3**  |\n| WEBHOOK_APP_SECRET        | WhatsApp App Secret for webhook signature verification. Optional but recommended for security. Get this from your WhatsApp Business API app settings. | your_app_secret_here                        |\n| WEBHOOK_HEADER_VALIDATION | To determine do we need to do header validation.                                                                                                       | false                                       |\n| GRAPH_API_TOKEN           | Graph API token. The value should be the same as the one you set in the WhatsApp Business API. Detail in picture below, poin **number 5**             | abacdefghijk                                |\n| BUSINESS_PHONE_NUMBER_ID  | Business phone number ID. The value should be obtained from WhatsApp Business API. Detail in picture below, poin **number 6**                         | 12345678912323                              |\n| DIFY_BASE_URL             | Dify base URL.                                                                                                                                        | https://api.dify.ai/v1                      |\n| DIFY_API_KEY              | Dify API key.                                                                                                                                         | app-Jdasdsdsd98n98787y                      |\n| RASA_BASE_URL             | Rasa base URL.                                                                                                                                        | http://localhost:5005/webhooks/rest/webhook |\n| CONNECTION_PLATFORM       | Platform to connect to. value should be `dify` or `rasa`                                                                                              | dify                                        |\n| SESSION_DATABASE          | Database to store session. value should be `in-memory` or `redis`                                                                                     | in-memory                                   |\n| REDIS_URL                 | Redis URL. Required if `SESSION_DATABASE` is set to `redis`                                                                                           | redis://localhost:6379                      |\n\n## WhatsApp Business API Configuration\n\n![configuration](./docs/whatsapp-configuration.png)\n![api setup](./docs/whatsap-api-setup.png)\n\n## Interactive Message Configuration\n\n### Flow\n\nTo create a Flow, you must setup many things like in the [docs](https://developers.facebook.com/docs/whatsapp/flows). I will mention over-simplified version for easy starting point:\n\n1. Create a Flow\n2. Setup server endpoint\n3. Setup Dify to trigger sending HTTP Request with this [JSON format](https://developers.facebook.com/docs/whatsapp/flows/gettingstarted/sendingaflow). Here is the example request body:\n\n```json\n{\n  \"recipient_type\": \"individual\",\n  \"messaging_product\": \"whatsapp\",\n  \"to\": \"{{#sys.user_id#}}\",\n  \"type\": \"interactive\",\n  \"interactive\": {\n    \"type\": \"flow\",\n    \"header\": {\n      \"type\": \"text\",\n      \"text\": \"Event Registration\"\n    },\n    \"body\": {\n      \"text\": \"Click button below to authenticate yourself\"\n    },\n    \"action\": {\n      \"name\": \"flow\",\n      \"parameters\": {\n        \"mode\": \"draft\", // delete this field for production use (when your flow is published)\n        \"flow_message_version\": \"3\",\n        \"flow_token\": \"auth_flow-{{#sys.user_id#}}.\",\n        \"flow_id\": \"1234567812345678\",\n        \"flow_cta\": \"Start\",\n        \"flow_action\": \"data_exchange\"\n      }\n    }\n  }\n}\n```\n\n4. It will send CTA button to trigger the Flow\n   ![flow cta](./docs/flow-cta.jpeg)\n5. Fill in, complete, and submit the form\n   ![flow form](./docs/flow-form.jpeg)\n6. Sent status will be displayed\n   ![flow sent](./docs/flow-sent.jpeg)\n\n## Deployment\n\n### Vercel\n\nYou can deploy this app to any server that runs Node.js. The easiest one is to use Vercel. Just clone this repo and connect it from Vercel Dashboard then you are good to go.\n\n### Docker\n\nUse `Dockerfile` and `docker-compose.yml` file in the root folder.\n\n1. Build docker image\n\n```\ndocker build -t wa-connector\n```\n\n2. Run the docker\n\n```\ndocker compose up -d\n```\n\n## License\n\nThis project is licensed under the MIT License. See the LICENSE file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyperjumptech%2Fwhatsapp-chatbot-connector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhyperjumptech%2Fwhatsapp-chatbot-connector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyperjumptech%2Fwhatsapp-chatbot-connector/lists"}