OUR COMPANY
Bring Your Ideas to Life
Everything that you dreamed of can be brought to life exactly at the moment when you decide to win.
import React, { useState } from 'react'; const SalesDiagnostic = () => { const [currentStep, setCurrentStep] = useState('questions'); const [step, setStep] = useState(0); const [answers, setAnswers] = useState({}); const [recommendations, setRecommendations] = useState(null); const [ratings, setRatings] = useState({}); const diagnosticSteps = [ { id: 'current_state', question: 'Как бы вы охарактеризовали текущее состояние ваших продаж?', options: [ { id: 'no_system', text: 'Нет системы продаж, все хаотично' }, { id: 'inconsistent', text: 'Продажи есть, но результаты нестабильные' }, { id: 'plateau', text: 'Достигли определенного уровня и застряли' }, { id: 'scaling_issues', text: 'Пытаемся масштабироваться, но есть сложности' } ] }, { id: 'team_size', question: 'Какой у вас размер команды продаж?', options: [ { id: 'solo', text: 'Только владелец/руководитель' }, { id: 'small', text: '1-3 менеджера' }, { id: 'medium', text: '4-10 менеджеров' }, { id: 'large', text: 'Более 10 менеджеров' } ] }, { id: 'main_challenge', question: 'С какой ключевой проблемой вы сталкиваетесь?', options: [ { id: 'lead_gen', text: 'Недостаточно лидов' }, { id: 'conversion', text: 'Низкая конверсия в сделки' }, { id: 'hiring', text: 'Сложности с наймом и удержанием' }, { id: 'processes', text: 'Отсутствие понятных процессов' } ] }, { id: 'goal', question: 'Какую цель вы хотите достичь в первую очередь?', options: [ { id: 'system', text: 'Построить систему продаж' }, { id: 'increase', text: 'Увеличить объем продаж' }, { id: 'team', text: 'Собрать эффективную команду' }, { id: 'automation', text: 'Автоматизировать процессы' } ] } ]; const getRecommendations = (answers) => { const stateRecommendations = { 'no_system': { priority: 'Критический приоритет: необходимо создание базовой системы продаж', timeline: '3-4 месяца для создания системы', steps: [ 'Внедрение CRM системы для фиксации всех сделок и лидов', 'Разработка скриптов продаж и базовых регламентов', 'Создание системы отчетности и KPI', 'Организация процесса найма и обучения', 'Внедрение системы воронки продаж', 'Создание базы знаний по продукту и возражениям', 'Разработка системы мотивации менеджеров', 'Организация регулярных планерок и системы контроля' ] }, 'inconsistent': { priority: 'Высокий приоритет: требуется стабилизация продаж', timeline: '2-3 месяца для стабилизации', steps: [ 'Аудит текущих процессов и выявление слабых мест', 'Стандартизация работы менеджеров', 'Внедрение системы мотивации', 'Создание базы знаний по продукту', 'Оптимизация воронки продаж', 'Автоматизация рутинных процессов', 'Внедрение системы наставничества', 'Организация системы регулярного обучения' ] }, 'plateau': { priority: 'Средний приоритет: необходим качественный рост', timeline: '2-3 месяца для выхода на новый уровень', steps: [ 'Анализ конкурентов и рыночной ситуации', 'Поиск новых каналов привлечения клиентов', 'Оптимизация воронки продаж', 'Развитие компетенций команды', 'Внедрение системы up-sell и cross-sell', 'Автоматизация маркетинга и продаж', 'Разработка программы удержания клиентов', 'Создание системы работы с отзывами и рекомендациями' ] }, 'scaling_issues': { priority: 'Высокий приоритет: необходимо устранение барьеров роста', timeline: '3-4 месяца для масштабирования', steps: [ 'Автоматизация рутинных процессов', 'Создание регламентов и процедур', 'Внедрение системы обучения новых сотрудников', 'Оптимизация организационной структуры', 'Разработка системы масштабирования продаж', 'Внедрение системы контроля качества', 'Создание системы управления знаниями', 'Оптимизация процесса найма и адаптации' ] } }; return stateRecommendations[answers.current_state] || { priority: 'Требуется анализ', timeline: '2-3 месяца', steps: [ 'Проведение полного аудита отдела продаж', 'Разработка системы мотивации', 'Внедрение CRM и автоматизация', 'Создание системы обучения', 'Оптимизация процессов продаж', 'Разработка системы KPI', 'Создание системы отчетности', 'Внедрение регулярных собраний и планерок' ] }; }; const handleAnswer = (answerId) => { const newAnswers = {...answers, [diagnosticSteps[step].id]: answerId}; setAnswers(newAnswers); if (step < diagnosticSteps.length - 1) { setStep(step + 1); } else { const recs = getRecommendations(newAnswers); setRecommendations(recs); setCurrentStep('ratings'); } }; const handleBack = () => { if (step > 0) { setStep(step - 1); } }; const handleRating = (stepIndex, rating) => { setRatings(prev => ({ ...prev, [stepIndex]: rating })); }; const handleSubmitRatings = () => { setCurrentStep('results'); }; const renderStars = (stepIndex, currentRating) => (
{[1, 2, 3, 4, 5].map((star) => ( ))}
); const renderQuestions = () => (

{diagnosticSteps[step].question}

{diagnosticSteps[step].options.map((option) => ( ))}
Шаг {step + 1} из {diagnosticSteps.length}
); const renderRatings = () => (

Оцените текущий уровень реализации каждой рекомендации:

{recommendations.steps.map((step, index) => (

{step}

{renderStars(index, ratings[index])}
{ratings[index] ? `${ratings[index]} из 5` : 'Нет оценки'}
))}
); const renderResults = () => { const categorizedSteps = { needsImprovement: [], goodState: [] }; recommendations.steps.forEach((step, index) => { const rating = ratings[index]; if (rating <= 3) { categorizedSteps.needsImprovement.push({ step, rating }); } else { categorizedSteps.goodState.push({ step, rating }); } }); return (

{recommendations.priority}

{recommendations.timeline}

{categorizedSteps.needsImprovement.length > 0 && (

Требуют улучшения:

    {categorizedSteps.needsImprovement.map(({ step, rating }, index) => (
  • {step} (текущая оценка: {rating}/5)
  • ))}
)} {categorizedSteps.goodState.length > 0 && (

Хороший уровень реализации:

    {categorizedSteps.goodState.map(({ step, rating }, index) => (
  • {step} (оценка: {rating}/5)
  • ))}
)}
); }; return (

Диагностика отдела продаж

{currentStep === 'questions' && renderQuestions()} {currentStep === 'ratings' && renderRatings()} {currentStep === 'results' && renderResults()}
); }; export default SalesDiagnostic;