1. Мета
Зробити, щоб чат-бот у Dialogflow CX міг відповідати користувачам у WhatsApp, використовуючи офіційний WhatsApp Cloud API від Meta (без сторонніх сервісів типу Twilio або 360Dialog).
2. Що робить замовник
- Створюю та налаштовую застосунок у Meta for Developers
- Додаю продукт WhatsApp.
- Отримую необхідні дані: Access Token, Verify Token, Phone Number ID
- Даю ці дані фрілансеру для підключення.
3. Що має зробити фрілансер
- Створити невеликий сервер (middleware), який буде “перекладачем” між WhatsApp і Dialogflow.
- Налаштувати два основних маршрути:
GET /wa — для перевірки з’єднання (Meta перевіряє Verify Token і повертає Challenge).
POST /wa — отримує повідомлення з WhatsApp, відправляє його в Dialogflow, отримує відповідь від бота і повертає цю відповідь назад у WhatsApp.
- Підключити сервер до Dialogflow CX через офіційний API (detectIntent).
- Підключити сервер до WhatsApp API через https://graph.facebook.com/vXX.X/{PHONE_NUMBER_ID}/messages.
- Розгорнути сервер у Google Cloud Run (HTTPS, доступ “без авторизації”).
- Надати мені публічне посилання на сервер (щоб я додав його у Meta Developer App у полі Webhook URL).
- Протестувати роботу з тестовим WhatsApp номером.
4. Як це працює
- Людина надсилає повідомлення у WhatsApp.
- Meta передає це повідомлення на твій сервер.
- Сервер бере текст і надсилає його у Dialogflow CX.
- Dialogflow формує відповідь.
- Сервер отримує цю відповідь і надсилає її назад користувачу у WhatsApp.
- Користувач бачить відповідь бота у чаті.
5. Вимоги до реалізації
- Сервер має працювати 24/7 і приймати запити через HTTPS.
- Використовувати Node.js (Express) або Python (FastAPI / Flask).
- Код має бути охайним, з короткими коментарями.
- Токени (Access Token, Verify Token, Dialogflow ключ) повинні зберігатись як змінні оточення (не у коді).
6. Результат роботи (що я маю отримати)
✅ Робочий сервер у Cloud Run, який:
приймає повідомлення з WhatsApp,
передає їх у Dialogflow,
повертає відповіді у WhatsApp.
✅ Посилання на сервер (Callback URL), яке я вставлю у Meta Developer App.
✅ Репозиторій із кодом (GitHub або GitLab) з інструкцією, як запустити.
✅ Файл README із коротким описом:
- як налаштувати сервер,
- як підключити до Meta,
- як протестувати.
7. Приклад потоку даних
WhatsApp → Meta Webhook → Middleware Server → Dialogflow CX → Middleware Server → WhatsApp