ИНСТРУМЕНТ ДЛЯ ПЕРВОЙ ПАРТИИ

Готово ли ТЗ технологу?

Ответьте на 10 коротких вопросов и получите список вводных, которые стоит подготовить до разговора о разработке косметики. Это не обещание готовой формулы, а способ прийти на первую встречу с ясной задачей.

Если вы уже собрали паспорт первой партии, этот чек-лист поможет превратить его в понятное техническое задание.

10 вопросовПро продукт, аудиторию, упаковку, ограничения и план тестирования.
Личный итогСразу увидите, чего пока не хватает для предметного брифа.
Без лишних догадокИтог можно отправить вместе с контактом и обсудить следующий шаг.

Проверьте исходные данные

Выберите один ответ в каждой строке. Чем больше ответов «готово», тем точнее будет разговор с технологом.

1. Вы определили первый продукт и его задачу?
2. Понятно, для кого этот продукт?
3. Вы зафиксировали желаемую текстуру и ощущения?
4. Есть список обязательных и нежелательных ингредиентов?
5. Понятна ценовая позиция будущего продукта?
6. Выбраны формат и примерный объём?
7. Есть предпочтение по упаковке?
8. Вы оценили желаемый объём первой партии?
9. Понятно, где и как продукт будут тестировать?
10. Есть желаемая дата запуска или важный дедлайн?

    Отправить итог и обсудить ТЗ

    Отправьте итог технологу

    Оставьте контакты. В сообщении будет ваш результат чек-листа — это помогает начать разговор с конкретики.

    Нажимая кнопку, вы соглашаетесь на обработку контактных данных для ответа на запрос.

    Частые вопросы

    Нужна ли готовая формула до первого разговора?

    Нет. Важно описать задачу продукта, аудиторию, ощущения, ограничения и ориентиры. Технолог поможет уточнить состав и проверяемые требования.

    Что делать, если половина ответов пока «нет»?

    Это нормальная точка старта. Сохраните список пробелов, начните с продукта и аудитории, затем соберите ориентиры по формату, упаковке и цене.

    Можно ли использовать этот список для нескольких SKU?

    Лучше проходить его отдельно для каждого первого продукта: у крема, очищения и ухода для волос различаются сценарии, упаковка и вопросы к тестированию.

    (()=>{const labels=[‘продукт и задачу’,’аудиторию и сценарий ухода’,’текстуру или образец’,’ограничения по ингредиентам’,’ценовую позицию’,’формат и объём’,’предпочтения по упаковке’,’объём первой партии’,’план тестирования’,’дедлайн’];const button=document.getElementById(‘tz-calculate’),result=document.getElementById(‘tz-result’),title=document.getElementById(‘tz-result-title’),intro=document.getElementById(‘tz-result-intro’),list=document.getElementById(‘tz-result-list’),hidden=document.getElementById(‘checklist-result’);function phoneMask(e){let v=e.target.value.replace(/D/g,»);if(v[0]===’8′)v=’7’+v.slice(1);if(v[0]!==’7′)v=’7’+v;v=v.slice(0,11);let s=’+7′;if(v.length>1)s+=’ (‘+v.slice(1,4);if(v.length>=4)s+=’) ‘+v.slice(4,7);if(v.length>=7)s+=’-‘+v.slice(7,9);if(v.length>=9)s+=’-‘+v.slice(9,11);e.target.value=s}document.querySelector(‘[name=»phone»]’).addEventListener(‘input’,phoneMask);button.addEventListener(‘click’,()=>{const missing=[];let ready=0;labels.forEach((label,i)=>{const answer=document.querySelector(‘input[name=»q’+(i+1)+'»]:checked’);if(answer&&answer.value===’yes’)ready++;else missing.push(label)});title.textContent=’Готово: ‘+ready+’ из 10 вводных’;intro.textContent=missing.length?’Перед разговором полезно уточнить:’:’У вас уже есть хорошая основа для предметного ТЗ.’;list.innerHTML=missing.map(x=>’

  • ‘+x+’
  • ‘).join(»)||’

  • Соберите ответы в один файл или заметку и приложите к обращению.
  • ‘;const summary=’Готовность ТЗ: ‘+ready+’/10. ‘+(missing.length?’Нужно уточнить: ‘+missing.join(‘, ‘)+’.’:’Все ключевые вводные отмечены.’);hidden.value=summary;result.classList.add(‘is-visible’);result.scrollIntoView({behavior:’smooth’,block:’start’})});document.getElementById(‘tz-lead-form’).addEventListener(‘submit’,async e=>{e.preventDefault();const form=e.currentTarget,phone=form.phone.value.replace(/D/g,»);const status=document.getElementById(‘tz-status’);if(phone.length<11){status.textContent='Укажите номер телефона полностью.';return}if(!hidden.value){status.textContent='Сначала получите итог чек-листа.';return}status.textContent='Отправляем…';try{const r=await fetch(form.action,{method:'POST',headers:{'Content-Type':'application/x-www-form-urlencoded'},body:new URLSearchParams(new FormData(form))});if(!r.ok)throw new Error();status.textContent='Спасибо! Запрос отправлен.';form.reset()}catch(_){status.textContent='Не удалось отправить форму. Попробуйте ещё раз или напишите нам позже.'}})})();