OfferUp Sender

Введите код из Telegram-бота

  1. Откройте бота @pensiya_parser_bot
  2. Отправьте команду /weblogin
  3. Введите 6-значный код ниже

📤 OfferUp Sender

—
| | |

Сейчас отправляется

Последовательность сообщений

Сендер отправляет все заполненные сообщения по порядку одному продавцу.

Плейсхолдеры: {title} {price} {seller} {link} {url}

📋 Шаблоны быстрых ответов

Появляются кнопками под полем ответа во вкладке «Входящие».

🌐 Автозамена прокси через 9proxy

Когда OfferUp возвращает PROXY_BLOCKED / GEO_BLOCK или прокси падает по сети, бот сам берёт свежий IP из 9proxy (sticky 24ч) и обновляет аккаунт + Octo-профиль.

Загрузка настройки…

Сводка за последние

Загрузка…

Топ аккаунтов по заменам

Загрузка…

Последние события

Загрузка…

Добавить аккаунт

🛡️ Octo API: проверка…

Поддерживаются 5 форматов: Cookie-Editor JSON (массив [{"name":..,"value":..}]), JSON-объект {"name":"value"}, Netscape cookies.txt, Cookie-header строка a=1; b=2, Puppeteer/Playwright JSON.

🔑 Userdata JWT (опционально, повышает шансы обхода 401)

Скопируйте значение заголовка Userdata из любого запроса OfferUp в DevTools/Burp.

🌐 Прокси (опционально)

Если указан, все запросы к OfferUp пойдут через этот прокси.

📦 Массовое добавление — загрузить пачку аккаунтов и подвязать к ним прокси
1 Cookies → в очередь
2 Прокси → в список (или из 9proxy)
3 «Распределить» + «Создать всё»
1

Cookies-файлы → очередь аккаунтов

.json / .txt, можно несколько

Поддерживаются 5 форматов: Cookie-Editor JSON (массив [{"name":..,"value":..}]), JSON-объект {"name":"value"}, Netscape cookies.txt, Cookie-header строка a=1; b=2, Puppeteer/Playwright JSON.

В очереди: 0
# Метка (имя файла) Cookies Прокси (host:port:user:pass)
3 Создать всё

                  
2

Список прокси

по одному на строку
🌐 Получить прокси из 9proxy API — сгенерирует и подставит в поле ниже

Параметры конфига
Что делать со списком:
Для очереди слева — нажмите «⇇ Распределить прокси» в шапке очереди (round-robin).
Для уже созданных аккаунтов внизу страницы — раздать прокси по списку.

                

📋 Аккаунты

Кликните по строке аккаунта, чтобы развернуть детали и доступные действия.

API генерации реферальных ссылок

Опционально. Если настроено — каждое сообщение получает уникальную {link}.

После загрузки сервисов появится выпадающий список — поле выше можно не трогать.

Интервал между сообщениями

Пауза между сообщением 1 → 2 → 3 одному продавцу. Если указать «до», бот случайно выбирает в этом диапазоне для каждого сообщения. Рекомендуется 3–10 сек.

от до секунд

Задержка между циклами

Пауза перед следующей итерацией очереди. Если указать «до», случайно выбирается в этом диапазоне. Рекомендуется 30–120 сек.

от до секунд

Повторы при ошибке

Если отправка не удалась, объявление возвращается в очередь и за него возьмётся другой аккаунт. После исчерпания всех попыток объявление помечается как failed.

Макс. попыток: (по умолчанию 3)

⏱️ Задержка AI-ответов по фазам диалога

Случайная пауза перед отправкой ответа ИИ продавцу (секунды). Если оба поля пары заданы — бот выбирает случайное число в диапазоне; иначе используется автоматический расчёт по длине текста (~3-30 сек). Только для авто-режима.

Продавец что-то ответил, ИИ задаёт уточняющий вопрос (состояние, самовывоз и т.п.).

от до секунд

Продавец дал номер, ИИ подтверждает что сейчас «оплатит».

от до секунд

После нажатия «оплатил», ИИ просит проверить SMS-уведомление.

от до секунд

Очередь сендера

0
Ожидают
0
В обработке
0
Отправлено
0
Ошибки

📞 Полученные номера телефонов

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

Показано: 0 из 0

🔑 Spanch SMS (v3.43)

Ваш персональный API-ключ Spanch для авто-верификации телефонов. Без ключа авто-верификация отключена — аккаунт уйдёт в 12-часовой cooldown как раньше.

📲 Авто-верификация телефона (v3.42)

При cooldown «phone verification required» (10019) бот покупает US-номер через Spanch SMS и подтверждает аккаунт автоматически.

Дата Аккаунт Статус Номер Цена Ошибка
Загрузка…
Выберите диалог слева

✉️ Настройки SMS

SMS отправляется через бот @pensiya_robot. Имя из профиля OfferUp подставляется автоматически. Доступные плейсхолдеры в тексте: {name}, {link}, {address}, {item}, {price}, {seller}, {phone}, а также {numberN} — N случайных цифр (напр. {number4} = 4 цифры) и {lettersN} — N случайных букв.

Если включено — для каждой SMS бот равновероятно выберет один маршрут из списка отмеченных ниже (вместо отправки по всем сразу). Сохраняется по кнопке «Сохранить» внизу формы.

⚙️ Конфигурация
Выберите провайдера — маршруты загрузятся автоматически.

При обычном режиме — каждый отмеченный маршрут = одна SMS на номер. В режиме «Случайный выбор» — пул, из которого выбирается один маршрут на отправку.

ℹ️ OfferUp шлёт SMS через собственный API аккаунта (sendAppLink) — у него нет carrier-маршрутов, поэтому выбор маршрутов и режим «случайный выбор» для этого провайдера не используются. Одна попытка отправки = один запрос с куками аккаунта через его прокси.

🔗 Генерация ссылки через pensiya-бот

Перед отправкой SMS бот автоматически создаёт фишинговую ссылку через POST /create-link и подставляет её в {link} (с именем и адресом из листинга). Если оставить хотя бы одно из полей пустым — ссылка не генерируется, используется обычная ссылка листинга.

Адрес вашего пенсия-бота. Если пусто — берётся общий из .env.

Личный API-ключ. Тогда вы видите только своих Worker / домены.

Провайдер и Sender ID берутся из настроек SMS-отправки выше.

Текст, который отправится в OfferUp-чат вместо голой ссылки. Доступные переменные: {deeplink} / {branch} — Branch-ссылка, {name} / {seller} — имя продавца, {title} — название объявления, {price}, {address}. Если поле пустое — в чат уходит только URL.

Отправляется в тот же диалог OfferUp сразу после успешной автоотправки SMS. Доступные плейсхолдеры: {phone}, {title}, {seller}, {url}.

Чтобы followup не отправлялся сразу же (это выглядит как бот), бот подождёт указанное число секунд после успешной отправки SMS. Можно задать диапазон — тогда задержка для каждого сообщения будет случайной в этих пределах (выглядит естественнее).

Минимальная задержка. 0 = отправить сразу.

Максимум для случайной задержки. Если пусто — задержка ровно «От», без рандома.

Пример: От = 30, До = 90 → бот подождёт случайно от 30 до 90 секунд и потом напишет followup. От = 10, До = пусто → ровно 10 секунд.

🧪 Тестовая отправка

Отправляет SMS с текущими настройками (провайдер, маршруты, шаблон, sender ID) на указанный номер. Имя и адрес берутся из указанного аккаунта и листинга (либо можно оставить пустыми).

Имя профиля ({name}) берётся из первого активного аккаунта автоматически.

Имя продавца, название, цена и картинка подтянутся автоматически из ссылки на листинг.

📊 Клики по SMS-провайдерам

Источник: GET /stats/by-provider у бота-приёмника. Считает выпущенные ссылки, переходы по ним и ввод карты, сгруппированные по SMS-провайдеру.

📨 История отправок SMS

Каждая попытка отправки записывается отдельной строкой (по маршруту). Кнопка ↻ повторно отправит SMS на тот же номер с указанным маршрутом — удобно, если первый маршрут не доставил.

📈 SMS статистика — клики и доставка по парам

Метрики считаются по парам (провайдер × маршрут). OK% — доля принятых шлюзом. CTR — клики/принятые. Источник кликов — pensiya-bot /api/bot/clicks.

🔍 Диагностика кликов (для разбора «почему не пришёл клик»)

Настройки ИИ-ассистента

Включите, чтобы Claude отвечал продавцам в чатах OfferUp от вашего имени.

🛑 Глобальный kill-switch включён (AI_GLOBAL_DISABLE=1) — ни один вызов Claude сейчас не уходит. Снимите переменную окружения на хосте, чтобы возобновить работу.

💡 Это запасное имя. Если у аккаунта во вкладке «Аккаунты» заполнено поле «Display name» (или подтянулось имя из OfferUp-профиля) — бот в каждом чате представляется именем этого аккаунта, а не значением отсюда. Глобальное имя используется только когда у аккаунта нет своего.

💡 Если продавец спросит «где ты?» — бот ответит этим городом/штатом. Когда модель вставляет плейсхолдер {city}/{state}, мы подставляем сюда введённые значения. Если оба поля пусты — бот сам выберет правдоподобный город рядом с городом продавца (он берётся из объявления).

💡 Опишите кем вы притворяетесь (студент, родитель, мастер), что ищете и почему. Эта легенда добавляется в системный промпт перед каждым ответом и сильнее всего влияет на тон. Подробнее — во вкладке «📖 Как пользоваться».

Канал отправки AI-сообщения по умолчанию
При выборе «Ссылка в чат» автопилот шлёт offerup.co-deeplink прямо в диалог, SMS не используется. Ручная кнопка в инбоксе тоже подтянет этот режим как дефолтный. Сохраняется автоматически при переключении.
Сохранено

💡 Лимит срабатывает на каждый аккаунт-отправитель отдельно (не суммарно). Если видите много rpm cap в ошибках ИИ — поднимите. Дефолт: 6. Слишком высокое значение начнёт упираться в RPM-кап провайдера (Anthropic) и вернёт те же ошибки уже сверху.

1.0
0.0 — детерминирована 0.5 — баланс 1.0 — макс. креатив

💡 Контролирует «случайность» Claude. 1.0 (по умолчанию) — текущее поведение, бот может ответить по-разному на одно и то же сообщение. 0.0–0.3 — почти детерминированно, одни и те же шаблонные ответы (полезно, если у вас FAQ-чаты и хочется стабильности). Сильно ниже 0.5 — и персона начинает звучать «роботично».

Сумма tokens_in + tokens_out за окно. Окно сбрасывается в 00:00 UTC.

Использовано сегодня
—
🛑 Лимит исчерпан — все ответы идут через approval до сброса.
История использования (UTC)
Нет данных
📊 Качество ответов — —
Нажмите «Обновить» чтобы загрузить.
Последние отправленные ответы (auto-mode)
💰 Расход / проверка ключа — —
Нажмите «Обновить» чтобы загрузить.
🔐 Anthropic Admin Key (для реальной стоимости) — не настроен
⚠️ Сервер не настроен: переменная окружения BYOK_MASTER_KEY отсутствует. Без неё ключ не будет зашифрован — попросите администратора задать её и перезапустить процесс.

Admin Key — отдельный ключ из консоли Anthropic (Settings → Admin Keys, префикс sk-ant-admin01-…). Не путать с обычным sk-ant-api03-… для чата. Этот ключ не используется для генерации сообщений — только для запроса реальной стоимости по всему аккаунту через Anthropic Cost API. Хранится зашифрованным (AES-256-GCM, версия v1) и обратно не отдаётся.

—

Показано только начало и хвост — настоящий ключ сервер обратно не отдаёт. «Проверить» делает ping cost_report за последний час.

Сохранится при нажатии «Сохранить» внизу. Пустое поле — без изменений.

Свои ключи Anthropic (BYOK) — не настроены
Внимание: на сервере отсутствует переменная окружения BYOK_MASTER_KEY. Без неё ключи нельзя зашифровать — попросите администратора задать её и перезапустить процесс.

Бот идёт по списку ключей в порядке приоритета (1 — главный). Если ключ возвращает ошибку, бот пробует следующий, а после двух подряд неудач отключает его на 15 минут и затем пробует ещё раз. Любые правки применяются к новым запросам моментально — перезагрузка не нужна.

Загрузка списка ключей…

Хранится зашифрованным (AES-256-GCM, версия v1). Сервер обратно не отдаёт — отображается только подсказка из первых 7 и последних 4 символов.

Если ключ настоящий — оставьте пустым (api.anthropic.com по умолчанию). Для reseller-ключей вставьте их URL (http:// и https:// — оба принимаются).

Если пусто — бот сам подтянет самый свежий claude-sonnet-4-* из списка /v1/models вашего реселлера и закэширует на 30 минут. Если хотите зафиксировать конкретную версию — впишите её ID вручную, например claude-sonnet-4-5-20250929, claude-opus-4-1-20250805, claude-haiku-4-5-20251015.

AI-режим по аккаунтам

Глобальный режим (fallback) задаётся на вкладке «Персона». Здесь — переопределения для отдельных аккаунтов-отправителей. «Наследовать» снимает переопределение и возвращает аккаунту общий режим.

Загрузка…

Триггеры — правила «если… то…»

Бот проверяет каждое входящее сообщение и, если оно подходит под одно из правил, делает то, что вы указали: молчит, зовёт вас, шлёт уведомление или отправляет готовый ответ.

ℹ️ Как это работает (раскрыть, если непонятно)

Каждое правило состоит из двух частей:

  1. Когда — что должно случиться в чате (продавец прислал телефон, написал «zelle», молчит 30 минут и т.п.).
  2. Что делать — реакция бота (не отвечать, передать вам, прислать алерт в Telegram, отправить готовый текст).

Правила проверяются до того, как ИИ начнёт думать над ответом. Это защита: если в сообщении продавца есть стоп-слово (например «zelle»), ИИ даже не получит этот текст — никакого риска, что он сгенерирует неправильный ответ.

Самый быстрый старт: жмите «+ Добавить триггер» → внутри окна сверху выберите один из готовых шаблонов (скам, ловля телефона, увод с площадки и пр.) — форма заполнится сама. Проверьте кнопкой «🔍 Проверить на последних 10 сообщениях» и сохраните.

Очередь предложений ИИ

Что чаще всего спрашивают продавцы

Агрегируется фоном раз в сутки. Используется как RAG-контекст.

🛡 PAYOUT-HOLD review

Отклонённые и оценённые «плохо» черновики ИИ за выбранный период, которые задевают темы payout-hold / SMS / refundable-hold / «другой ссылки». Жёлтые карточки — НОВЫЕ формулировки, которые строгий фильтр ещё не ловит. Скопируйте фразу и добавьте в PROMPT_FORBIDDEN_PAYOUT_HOLD_DENIALS.

⬆ Promoted overrides (0)

Эти фразы добавлены оператором поверх вшитого списка. Срабатывают и в строгом фильтре, и в промпте (как отдельный NEVER-пункт).

📖 Watch-словарь (что мы ищем в тексте)

🎓 Обучение на ваших примерах

Примеры пар «сообщение продавца → ваш ответ» подкладываются в системный промпт. Чем больше качественных примеров — тем точнее ИИ копирует ваш стиль. Каждое одобрение в очереди «Предложения» автоматически добавляет пример сюда.

0–50. Больше — точнее, но дороже по токенам.
➕ Добавить пример вручную

Напоминание: бот выступает покупателем и пишет продавцам. «Сообщение продавца» — это то, что продавец ответил вам. «Ваш ответ» — это то, что вы (как покупатель) напишете в ответ.

Всего: 0 примеров (показано последних до 50)
Пересчёт…
История пересчётов
Загрузка…
Загрузка…

📊 Статистика ИИ

—
📅 Сегодня (UTC)
Загрузка…
🧠 По моделям (24ч)
Загрузка…
👥 По аккаунтам (24ч)
Загрузка…
⚠️ Ошибки (24ч)
Загрузка…
📝 Структура промпта
Загрузка…
🔑 По BYOK-ключам (24ч)
Загрузка…
Расход в разрезе конкретного ключа из ротации. Строка «(без BYOK)» — это вызовы через shared-proxy либо логи до v3.55.
🚦 Ограничения
Загрузка…
Если видите много RPM cap в ошибках — поднимите лимит во вкладке «⚙️ Персона» → «Макс. вызовов в минуту на аккаунт».
Данные обновляются каждые 30 секунд, пока вкладка открыта. Все цифры за указанный период по строкам ai_message_log текущего пользователя. Цены — справочные ставки Anthropic.

📖 Как пользоваться ИИ-ассистентом

🚀 С чего начать (5 минут)
  1. Откройте ⚙️ Персона → включите тумблер «Включить ИИ-ассистента».
  2. Заполните «Имя», «Тон» и «Дополнительный контекст» (легенду покупателя).
  3. Поставьте режим С подтверждением — первые 1–2 дня всё через очередь, чтобы вы видели каждый ответ.
  4. Откройте 📥 Предложения — там появятся варианты. Жмёте «✅ Одобрить» или редактируете и одобряете.
  5. Каждое одобрение копируется в 🎓 Обучение — ИИ учится на ваших правках.
  6. Когда стиль стабилизируется — переключите режим на Авто.
⚙️ Что значат три режима
  • auto — ИИ отправляет ответ сразу, вы видите его постфактум в логах.
  • approval — ИИ генерирует ответ и кладёт в очередь «Предложения». Ничего не уходит, пока вы не нажмёте «Одобрить» (в Telegram или здесь).
  • off — ИИ полностью молчит для этого аккаунта/чата. Вы отвечаете сами.

Цепочка приоритетов: чат → аккаунт → общий. Конкретный чат бьёт аккаунт, аккаунт — общую персону.

🎯 Зачем триггеры

Триггеры — это правила «если входящее сообщение похоже на X — сделать Y». Они срабатывают до Claude и могут заблокировать ответ, передать чат вам или изменить тон. Типовые шаблоны (скам, ловля телефона, лоуболл, увод с площадки) уже преднастроены — нажмите «+ Добавить триггер» и выберите шаблон.

🎓 Как обучается ИИ
  • Автоматически: каждое одобрение в очереди превращается в пару (сообщение продавца → ваш ответ) и кладётся в «🎓 Обучение».
  • Вручную: можно добавить пример прямо в «🎓 Обучение» через форму «➕ Добавить пример вручную».
  • Из импорта (скоро): загрузка CSV/JSON со сборкой большой базы за один присест.
  • Включите тумблер «Использовать примеры в системном промпте» — без него корпус собирается, но не используется.
  • Параметр «Сколько примеров класть в промпт» (0–50) контролирует, сколько последних пар Claude увидит при каждом ответе. Больше — точнее, но дороже по токенам.
🔑 Свой ключ Anthropic (BYOK)

По умолчанию все запросы к Claude идут через прокси Replit (вы платите по тарифу платформы). Если хотите платить со своего счёта Anthropic — вставьте ключ sk-ant-… в разделе 🔑 Свой Anthropic-ключ на вкладке «Персона».

Ключ хранится зашифрованным (AES-256-GCM). Чтобы шифрование работало, на сервере должна быть переменная окружения BYOK_MASTER_KEY (32-байтовый hex). Если её нет — раздел недоступен; попросите администратора задать её и перезапустить процесс.

💡 Полезные советы
  • В легенде («Дополнительный контекст») опишите кем вы притворяетесь (студент, родитель, мастер) — это сильно влияет на тон.
  • Если ответы звучат «по-боту» — добавьте 5–10 ваших старых хороших ответов вручную в «🎓 Обучение».
  • Не выключайте режим approval, пока не увидите 20–30 одобренных ответов подряд без правок.
  • Дневной лимит токенов защищает от непредвиденных расходов — поставьте порог, после которого всё уйдёт в approval.
  • Если кампания временно остановлена — поставьте режим off на нужном аккаунте, не выключая глобально.

👥 Пользователи веб-панели

У каждого пользователя — изолированный кабинет (свои аккаунты, очередь, инбокс, настройки). Доступ выдаёте только вы.

Узнать свой Telegram ID можно у бота @userinfobot.

Список пользователей

Загрузка…