MAP2 · stream-grainee-nps-funnel

Инструкция для саппорта

Загрузка…

Ничего не найдено. Сбросьте фильтр или измените запрос.

lookup

1. Как найти сессию

Гость обычно даёт ссылку, телефон или сделку в Twenty.

Даёт гостьЧто это
ru.tc/money/<uuid>session_id = UUID
Телефонnps_sessions.phone (E.164). Может быть несколько строк — берите свежую / нужный филиал
Сделка Twentycrm_event_id = Opportunity UUID
QR / филиалСмотрите branch_id + touchpoint (3D)
SELECT id, phone, status, nps_score, verification_status,
       branch_id, touchpoint, source, crm_event_id, sent_at
FROM nps_sessions
WHERE id = '<uuid>'
   OR crm_event_id = '<opp-uuid>'
   OR phone = '+7…'
ORDER BY created_at DESC;
lookup

2. Статусы (коротко)

ПолеЗначения
statuspending_silent → queued → sent (+ reminder)
verification_statusnone → pending (клик по картам) → verified / rejected
sourcecrm_webhook (outbound) · inbound_tg · inbound_wa · inbound_qr

Клик по картам ≠ подтверждённый отзыв. Пока pending — ждём саппорт.

verify

3. Подтвердить / отклонить отзыв

После клика по картам статус pending. Проверьте отзыв на карте, затем:

curl -sS -X POST 'https://evo.do/api/v1/nps-verify' \
  -H "Authorization: Bearer $SUPABASE_SERVICE_ROLE_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "session_id": "<uuid>",
    "status": "verified",
    "verified_by": "support:@handle",
    "send_promo": false
  }'
  • status: verified или rejected
  • send_promo: true — одно WAHA-промо, если ещё не уходило
  • В Twenty уйдёт verificationStatus VERIFIED / REJECTED
inbound

4. Inbound QR (3D-трекинг)

Гость сканирует QR → выбирает мессенджер → авторизация в 1 клик → тот же лендинг оценки.

Ссылки

  • Auth Gate: ru.tc/start?code=…
  • Формат кода: {branch}-{touchpoint}, fallback main-reception
  • Пример: center-restaurant → филиал center, точка restaurant
  • Несколько дефисов: center-vip-lounge → branch=center, touchpoint=vip-lounge

Каналы

КаналКакsource
Telegramконтакт → Mini Appinbound_tg
WhatsAppтекст NPS_START_{code} → ссылка в ответinbound_wa
OTP/money/start код в WAinbound_qr
CRM outboundвебхук Twenty → WAHA invitecrm_webhook

В CRM на Opportunity пишется npsTouchpoint. В БД — nps_sessions.touchpoint.

Все пути сходятся в https://ru.tc/money/{session_id}.

tickets

5. Частые тикеты и режимы возврата

Симптом / СценарийПроверитьДействие
«Ссылка недействительна»Не UUID / нет строкиНовая сессия из CRM или inbound
Нет кнопок картgeo_places для org+branch+touchpointSeed / прописать URL карт для филиала/точки
WA не пришлоSilent 21–09; статус; WAHA WORKINGДождаться утра / очередь; статус сессии WAHA
Оценка не меняетсяУже feedback или maps clickОжидаемый lock (фиксация ответа)
Кнопка серая («✅ Открыто»)Уже переходил на картуReturn UX: Гость может выбрать оставшуюся карту для дублирования или нажать «Оценить Ресторан»
Кросс-отзыв РесторанаКлик «Оценить Ресторан»POST /api/v1/nps-cross-review меняет touchpoint на restaurant, выдаёт новые карты и обновляет сделку в CRM
Фоллоуап через 24 часаВоркер nps-followup-tickСканирует сессии >24ч с кликами карт, отправляет напоминание в WAHA для отзыва о ресторане
Feedback второй разHTTP 409Ожидаемо — один раз на сессию
Пустые поля в CRMSoft-fail PATCHЛоги CrmProvider; поля Opportunity
QR не открывает TG/WAstart-config.json TG_BOT_NAME / WA_NUMBERПроверить /start-config.json
ru.tc «parked»nginx parked originCanon conf + listen на origin IP
tickets

6. Алерты Telegram

NPS 1–3 + личный feedback → ops-чат (бот саппорта). Это сигнал для команды, не ответ гостю.

Эскалация: логи edge nps-* / CrmProvider / WahaProvider → Twenty → WAHA session → founder только за compliance.

compliance

7. Compliance (не ломать)

  • White product — без gating отзывов и без auto-post на карты.
  • Оценка 1–3: форма жалобы и кнопки карт остаются.
  • Черновик текста = только clipboard, гость публикует сам.
  • Клик по картам → pending, пока саппорт не verify/reject.