Стек: Python + aiogram для тг бота
Придумать систему генерации квиза
Сделать возможность для админа делать рассылку
Настроить текст рассылки
👩💻 Упрощённая версия бота:
import asyncio
from aiogram import Bot, Dispatcher, types, F
from aiogram.filters import CommandStart
from aiogram.fsm.context import FSMContext
from aiogram.fsm.state import State, StatesGroup
# Настройка состояний квиза
class QuizStates(StatesGroup):
question1 = State()
question2 = State()
phone = State()
bot = Bot(token="YOUR_TELEGRAM_TOKEN")
dp = Dispatcher()
@dp.message(CommandStart())
async def start_cmd(message: types.Message, state: FSMContext):
await message.answer("Привет! Ответь на 2 вопроса, и мы подберем решение. Какой у вас бюджет?")
await state.set_state(QuizStates.question1)
@dp.message(QuizStates.question1)
async def process_q1(message: types.Message, state: FSMContext):
await state.update_data(budget=message.text)
await message.answer("Какая сфера вашего бизнеса?")
await state.set_state(QuizStates.question2)
@dp.message(QuizStates.question2)
async def process_q2(message: types.Message, state: FSMContext):
await state.update_data(sphere=message.text)
await message.answer("Оставьте ваш номер телефона для связи:")
await state.set_state(QuizStates.phone)
@dp.message(QuizStates.phone)
async def process_phone(message: types.Message, state: FSMContext):
user_data = await state.get_data()
phone = message.text
# Имитация интеграции с CRM (Bitrix24/AmoCRM)
print(f"Отправка в CRM: Бюджет: {user_data['budget']}, Сфера: {user_data['sphere']}, Тел: {phone}")
await message.answer("Спасибо! Менеджер свяжется с вами в течение 15 минут.")
await state.clear()
async def main():
await dp.start_polling(bot)
if __name__ == "__main__":
asyncio.run(main())
Если брать то ТЗ, которое написал заказчик, работы на 1-3 часа. И 20к уже в кармане 😎
Из нюансов: заказчик нанимал 0% исполнителей и уже 30+ откликов
