API для автоматической регистрации на события WeEnergy через вебхук с последующей отправкой данных на форму, а также для создания лидов в CRM WeEnergy с помощью Playwright.
- ✅ Принимает данные регистрации через webhook endpoint
- ✅ Автоматически заполняет форму на weenergy.at/event
- ✅ Создает лиды в WeEnergy CRM через API
- ✅ API Key авторизация для CRM endpoints
- ✅ Расширенные поля лида (адрес, телефон, возраст, заметки)
- ✅ Дефолтная дата рождения (18 лет) если не указана
- ✅ Обрабатывает cookie баннер
- ✅ Проверяет успешную отправку формы
# Install dependencies
pip install -r requirements.txt
# Install Playwright browsers
playwright install chromium
# (Optional) Set environment variables
cp .env.example .env
# Edit .env if you need to change the form URL
# Run server
uvicorn app.main:app --host 0.0.0.0 --port 8080 --reload# Build image
docker build -t weenergy-api .
# Run container
docker run -p 8080:8080 weenergy-apiGET /
Ответ:
{
"service": "WeEnergy API",
"status": "running",
"form_url": "https://weenergy.at/event",
"endpoints": {
"webhook": "/webhook/register",
"crm": "/crm/lead",
"health": "/"
}
}POST /webhook/register
Content-Type: application/json
{
"first_name": "Ivan",
"last_name": "Petrov",
"email": "ivan@example.com",
"invited_by": "Oleg Zakharchenko"
}
Ответ:
{
"success": true,
"data": {
"first_name": "Ivan",
"last_name": "Petrov",
"email": "ivan@example.com",
"invited_by": "Oleg Zakharchenko"
},
"submission": {
"status": "success",
"message": "Form submitted successfully"
}
}POST /crm/lead
Content-Type: application/json
X-API-Key: your-api-key
{
"first_name": "Ivan",
"last_name": "Petrov",
"email": "ivan@example.com",
"phone": "+436761234567",
"birth_date": "1990-05-15",
"street": "Hauptstraße",
"house_number": "123",
"postal_code": "1010",
"city": "Wien",
"notes": "Интересуется солнечными панелями",
"lead_type": "Person",
"source": "api"
}
Поля (опциональные отмечены):
first_name(обязательно) - Имяlast_name(обязательно) - Фамилияemail(обязательно) - Emailphone(опционально) - Телефонbirth_date(опционально) - Дата рождения в формате YYYY-MM-DD (по умолчанию 18 лет назад)title(опционально) - Академический титулstreet(опционально) - Улицаhouse_number(опционально) - Номер домаstair_floor(опционально) - Ступени/Этажdoor_top(опционально) - Дверь/Топpostal_code(опционально) - Почтовый индексcity(опционально) - Городcountry(опционально, по умолчанию "Österreich") - Странаnotes(опционально) - Заметкиlead_type(опционально, по умолчанию "Person") - Тип лидаsource(опционально, по умолчанию "api") - Источник лида
Ответ:
{
"success": true,
"data": { ...lead data... },
"result": {
"status": "success",
"message": "Lead created successfully"
}
}curl -X POST http://localhost:8080/webhook/register \
-H "Content-Type: application/json" \
-d '{
"first_name": "Ivan",
"last_name": "Petrov",
"email": "ivan@example.com"
}'import requests
response = requests.post(
"http://localhost:8080/webhook/register",
json={
"first_name": "Ivan",
"last_name": "Petrov",
"email": "ivan@example.com"
}
)
print(response.json())API автоматически заполняет следующие поля на weenergy.at/event:
- Vorname — Имя
- Nachname — Фамилия
- Email — Email адрес
- Wer hat dich eingeladen? — Кто пригласил (по умолчанию "Oleg Zakharchenko")
- FastAPI — веб-фреймворк
- Playwright — автоматизация браузера
- Docker — контейнеризация
MIT