1. Cel
Umożliwić chatbotowi w Dialogflow CX odpowiadanie użytkownikom w WhatsApp, korzystając z oficjalnego WhatsApp Cloud API od Meta (bez zewnętrznych usług typu Twilio lub 360Dialog).
2. Co robi zleceniodawca
- Tworzę i konfiguruję aplikację w Meta for Developers
- Dodaję produkt WhatsApp.
- Otrzymuję niezbędne dane: Access Token, Verify Token, Phone Number ID
- Przekazuję te dane freelancerowi do podłączenia.
3. Co ma zrobić freelancer
- Stworzyć mały serwer (middleware), który będzie „tłumaczem” między WhatsApp a Dialogflow.
- Skonfigurować dwa główne trasy:
GET /wa — do weryfikacji połączenia (Meta weryfikuje Verify Token i zwraca Challenge).
POST /wa — odbiera wiadomości z WhatsApp, wysyła je do Dialogflow, otrzymuje odpowiedź od bota i zwraca tę odpowiedź z powrotem do WhatsApp.
- Podłączyć serwer do Dialogflow CX przez oficjalne API (detectIntent).
- Podłączyć serwer do WhatsApp API przez https://graph.facebook.com/vXX.X/{PHONE_NUMBER_ID}/messages.
- Wdrożyć serwer w Google Cloud Run (HTTPS, dostęp „bez autoryzacji”).
- Przekazać mi publiczny link do serwera (żebym mógł dodać go w Meta Developer App w polu Webhook URL).
- Przetestować działanie z testowym numerem WhatsApp.
4. Jak to działa
- Osoba wysyła wiadomość w WhatsApp.
- Meta przekazuje tę wiadomość na twój serwer.
- Serwer pobiera tekst i wysyła go do Dialogflow CX.
- Dialogflow formułuje odpowiedź.
- Serwer otrzymuje tę odpowiedź i wysyła ją z powrotem do użytkownika w WhatsApp.
- Użytkownik widzi odpowiedź bota w czacie.
5. Wymagania dotyczące realizacji
- Serwer musi działać 24/7 i przyjmować zapytania przez HTTPS.
- Używać Node.js (Express) lub Pythona (FastAPI / Flask).
- Kod musi być schludny, z krótkimi komentarzami.
- Tokeny (Access Token, Verify Token, klucz Dialogflow) powinny być przechowywane jako zmienne środowiskowe (nie w kodzie).
6. Wynik pracy (co mam otrzymać)
✅ Działający serwer w Cloud Run, który:
przyjmuje wiadomości z WhatsApp,
przekazuje je do Dialogflow,
zwraca odpowiedzi w WhatsApp.
✅ Link do serwera (Callback URL), który wkleję w Meta Developer App.
✅ Repozytorium z kodem (GitHub lub GitLab) z instrukcją, jak uruchomić.
✅ Plik README z krótkim opisem:
- jak skonfigurować serwer,
- jak podłączyć do Meta,
- jak przetestować.
7. Przykład przepływu danych
WhatsApp → Meta Webhook → Middleware Server → Dialogflow CX → Middleware Server → WhatsApp