Files
autoreg-skills-max/skills/ai-provider-autoreg/references/notion-partner-offer-farm.md

8.2 KiB
Raw Permalink Blame History

Notion AI Business — Startup Partner Offer Farm

Статус на 2026-09-09: пайплайн рега→код→вход работает, бизнес-тир НЕ подтверждён (все прогоны дали tier=None/0 BUSINESS). Механика ниже верифицирована; финальный шаг (прикрепление оффера после входа) — открытая проблема.

ДВЕ разные Notion-фермы — не путать

  1. Free-plan farm (tmp/notion_autoreg/farm.py, скилл notion-opus-farm): Voidash voidash.bond → signup-код → онбординг → /chat → модель-пикер. Даёт акки на ФРИ-плане с рабочим чатом: Opus 5.5 (Beta) и GPT-6.1 Sol (New Beta) выбираются и отвечают БЕЗ активированного триала (промо-окно на free). Business-триал этот пайплайн НЕ активирует — не заявлять «бизнес оформлен» без проверки.
  2. Partner-offer farm (этот файл, tmp/notion-gateway/): попытка получить Business через startup-оффер — бизнес-тир до сих пор не подтверждён.

Путь активации триала без карты из UI (settings → Notion AI → AI connectors, либо «Sources → Add sources» в чате) на свежих акках НЕ воспроизводится: это server-side AB-гейт — все AI-CTA ведут в карточную модалку «Upgrade to the Business plan», кнопки sources нет. Полный реверс (кампании trialUpsell, сид sessionStorage trialCampaign, волновая стратегия farm_trial.py) — в references/notion-business-trial-ab-gate.md.

Функциональная проверка живости акка (headless-работает, billing-страницы — нет)

Headless-план/биллинг НЕ проверяется: app.notion.com/settings/* и /settings/billing в SPA редиректят на последнюю открытую страницу; внутренние billing-эндпоинты /api/v3 = 404; getRecordValues с spaceId = MemcachedCrossCellError 500. Проверять ФУНКЦИОНАЛЬНО:

  • Chat-probe (probe_chat2.py в проекте): goto /chat → Escape (cookie-баннер перехватывает клик) → ввод через [contenteditable='true'] (textarea на странице НЕТ — locator('textarea') виснет) → «say OK» → Enter → ~40с wait → ответ виден в inner_text(body).
  • Model-picker: [aria-label="Choose AI model"] → menuitems читать по inner_text (текст разбит спанами: «Opus», «5.5», «Beta» отдельно).
  • Авторитетная проверка тира (когда нужен именно план): getSpacesInitial → spaceId → getSubscriptionData с заголовками x-notion-active-user-header + x-notion-space-id (п.10 ниже) — требует созданный workspace.
  • Прогонять пробы Python311 (C:/Users/User/AppData/Local/Programs/Python/Python311/python.exe) с PYTHONPATH="" — hermes-python без playwright, а venv-PYTHONPATH ломает резолв.

Локация

C:\Users\User\tmp\notion-gateway\ — полная ферма:

  • partner_business.py — скрипт под MongoDB-оффер (sync patchright)
  • farm.py / NotionFarm.exe — GUI-фарм обычных акков (177 акков, 64 сессии)
  • imap.txt — 17.8k t-online.de почт (email:password)
  • good_proxies.json — 27 живых bpproxy residential (host:port:user:pass, hardsession)
  • app_onboarding.py — синхронный онбординг (run_onboarding(page, log, name))

Оффер: https://www.notion.com/startups-apply?partner=MongoDB&partnerKey=MongoDBNotion3000 → редирект на app.notion.com/login?redirectURL=/startups-apply?...

Верифицированные механики (pitfalls)

  1. getLoginOptions hasAccount — ЛОЖНОЕ срабатывание. Эндпоинт дёргается при загрузке страницы ДО ввода email и отвечает hasAccount=true даже для свежих bccto.cc адресов. НИКОГДА не скипать по нему. В run8 это сожрало 7/12 попыток впустую.

  2. sendTemporaryPassword = и регистрация, и ЛОГИН. Для существующей почты Notion шлёт login-код тем же эндпоинтом, а redirectURL несёт партнёр-оффер. Логин в существующий акк — выигрышный путь, не тупик.

  3. Кнопка Continue зависает на "Loading..." после редиректа. Один клик = stage=stalled. Фикс: цикл re-click до срабатывания sendTemporaryPassword (~60с), пропуская итерации пока текст содержит "Loading".

  4. Редирект после ввода кода зависает на /login?redirectURL=startups-apply... — онбординг не запускается, оффер не применяется. Фикс: re-open APPLY_URL с живой сессией (token_v2 cookie уже стоит) и ждать /onboarding.

  5. Ждать RESPONSE sendTemporaryPassword, не request. Матчинг по запросу ломал диагностику (стоп через 1с, ложный stalled).

  6. Код Notion — 6 ALPHANUMERIC символов (напр. "XKfo7V", "472270"), не 6 цифр. Regex: <pre>-блок → code[:\s]+ → одиночный 6-char токен.

  7. Один прокси на попытку. Apply-страница рейт-лимитит по IP: первые 1-2 попытки с IP проходят (stp=200), дальше всё stalled без API-ответа.

  8. t-online.de: ~75% почт уже заняты в Notion (12 из 18 сэмплированных). rootsh.com/bccto.cc временные почты — как предписывает гайд оффера, но bccto.cc тоже иногда flagged hasAccount (ложно, см. п.1).

  9. SYNC patchright только. app_onboarding.run_onboarding синхронный; async Page даёт "TypeError: argument of type 'coroutine' is not iterable".

  10. Проверка тира: getSpacesInitial (cookies из storage_state) → uid → space_view_pointers[0].spaceId → getSubscriptionData c заголовками x-notion-active-user-header + x-notion-space-id. Питfall: у свежего акка svp пуст (0 spaces) — tier=None даже когда акк создан. Онбординг должен создать workspace, иначе проверку тира не сделать.

Mailbox-бэкенды

  • RootshMailbox — rootsh.com API: POST /applymail {mail} → /getmail {mail,time} (500 = пусто, ретраить) → /viewmail {mail:fid}. Домен bccto.cc, cookie mail привязан к ящику.
  • ImapMailbox — imap.t-online.de:993, логин email:password из imap.txt.

Открытая проблема

Ни один прогон не дал stage=business. Гипотеза следующего шага: скриншотить страницу после ввода кода / re-open — возможно оффер требует отдельного экрана "активировать триал", который run_onboarding не кликает. Проверить res["reapply_url"] и res["onboarded"] в partner_results.json после успешного входа.

Заметка по процессу

Файл partner_business.py в этой сессии параллельно правился другим агентом/редактором (появлялись чужие блоки, терялись мои патчи, один раз — синтаксическая поломка). Перед каждым patch — перечитывать файл; после правок — python -m py_compile.