Skip to content
This repository was archived by the owner on Jun 9, 2026. It is now read-only.
zaharenokPublic archive

About

No description or website provided.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

15 Commits

Folders and files

Repository files navigation

WeEnergy API

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

Docker

# Build image
docker build -t weenergy-api .

# Run container
docker run -p 8080:8080 weenergy-api

API Endpoints

Health Check

GET /

Ответ:

{
  "service": "WeEnergy API",
  "status": "running",
  "form_url": "https://weenergy.at/event",
  "endpoints": {
    "webhook": "/webhook/register",
    "crm": "/crm/lead",
    "health": "/"
  }
}

Webhook Registration (Event Form)

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"
  }
}

Create Lead in CRM

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 (обязательно) - Email
  • phone (опционально) - Телефон
  • 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

curl -X POST http://localhost:8080/webhook/register \
  -H "Content-Type: application/json" \
  -d '{
    "first_name": "Ivan",
    "last_name": "Petrov",
    "email": "ivan@example.com"
  }'

Python

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

About

No description or website provided.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages