Перейти к содержанию

Python-скрипт: парсинг реестров 1С для B2B-писем с персонализацией по цехам

Программирование ЧПУ | CNC
1 1 118 1
  • В B2B на заводах тонны данных о покупателях лежат в 1С. Парсинг реестров вытаскивает их в удобный формат. Скрипт на Python автоматизирует это: достает контакты, сегментирует по цехам и генерит персонализированные письма. Экономит часы на ручной разборке таблиц и повышает конверсию лидов.

    Проблема знакомая: менеджеры копируют данные из 1С в Excel, потом вручную дописывают текст под каждого. Результат - шаблонные спам-письма, которые летят в корзину. Этот скрипт меняет подход: парсит реестр, анализирует цеха и подставляет релевантные боли в текст. Готовые лиды без нервов.

    Как скрипт цепляется к 1С и парсит реестры

    Подключение к 1С через Python - не мистика, а COM-интерфейс или ODBC. Скрипт запускает запрос к базе, достает таблицы покупателей: ФИО, email, цех, последние заказы. Данные фильтруются по активности - только те, кто покупал за год. Потом BeautifulSoup или pandas разбирает структуру на чистые списки.

    Пример: в реестре 500 контрагентов с нефтегазового цеха. Скрипт группирует их по подотраслям - бурение, трубопроводы. Для каждого подставляет персонализацию: ‘Ваш цех на бурении тратит 20% на простои - вот наше решение’. Без этого письма - серый шум в inbox. Скрипт делает их острыми, как G-код для Fanuc.

    • Установка зависимостей: pip install pywin32 pandas openpyxl requests smtplib - для 1С, таблиц и почты.
    • Подключение к 1С: import win32com.client; app = win32com.client.Dispatch('V83.COMConnector') - база открывается за секунды.
    • Парсинг реестра: df = pd.read_sql_query('SELECT * FROM Buyers WHERE Active=1', conn) - данные в DataFrame.
    • Сегментация по цехам: df.groupby('Workshop')['email'].apply(list) - готовые группы для писем.
    Параметр Описание Пример значения
    Workshop Цех покупателя ‘Нефтегаз-Бурение’
    LastOrder Последний заказ ‘2025-03-15’
    PersonalPain Боль цеха ‘Простои на 15%’

    Персонализация писем под цеха: от шаблона к хиту

    Шаблон письма - скелет: тема, приветствие, боль, предложение, CTA. Скрипт подставляет данные из парсинга. Для энергетики - упор на надежность, для химпрома - на безопасность. Тема генерится динамически: ‘Для цеха {workshop}: сократите {pain} на 30%’.

    Реальный кейс: парсим 200 email из пищевой отрасли. Скрипт видит цех ‘Консервация’ - вставляет ‘Ваша линия простаивает из-за износа - запчасти под Fanuc в 2 раза дешевле’. Открываемость подскакивает с 15% до 42%. Менеджер только проверяет и жмет ‘отправить’. Автомат - это когда код тащит лиды.

    • Генерация темы: subject = f"{df['workshop'][i]}: решение {df['pain'][i]}" - коротко, персонально.
    • Текст тела: Jinja2 шаблоны для подстановки - template.render(name=contact, pain=pain).
    • Массовый рассылка: smtplib с Gmail или корпоративным SMTP - батч по 50 писем.
    # Пример фрагмента скрипта
    for index, row in df.iterrows():
        workshop = row['workshop']
        pain = pains.get(workshop, 'стандартная боль')
        email_body = f"Уважаемый {{row['name']}}, в цехе {workshop} типичная проблема - {pain}. Наше решение..."
        send_email(row['email'], subject, email_body)
    

    Нюанс: проверяй лимиты SMTP - не больше 100/час, иначе бан.

    Структура скрипта: от парсинга до отправки

    Скрипт делится на модули: connect_1c.py для базы, parse_buyers.py для данных, personalize.py для писем, sender.py для рассылки. Конфиг в YAML - email, пароль, фильтры. Запуск по крону: каждую пятницу парсит свежий реестр и шлет обновления.

    Пример аргументов: нефтегаз - фокус на трубах, металл - на ЧПУ-инструменте. Скрипт сам подтягивает из 1С историю заказов, считает средний чек. Выход - CSV с готовыми письмами или прямая отправка. Тестируй на 10 контактах, масштабируй на тысячи.

    1. config.yaml: smtp_server: smtp.gmail.com, filters: {active: true, workshop: 'Нефтегаз'}.
    2. parse_and_personalize(): Объединяет парсинг и шаблон - возвращает список писем.
    3. send_batch(): Рассылка с задержками - time.sleep(2) между письмами.
    4. Логи: Все в файл - успех, фейлы, метрики открытий через read receipts.
    Шаг Время Выход
    Парсинг 1С 30 сек DataFrame 1000 строк
    Персонализация 10 сек 1000 шаблонов
    Рассылка 5 мин Отчет в лог

    Когда скрипт тащит конверсию на новый уровень

    Автомат парсит, персонализирует и шлет - менеджер фокусируется на звонках. Осталось доработать: A/B-тесты тем, интеграцию с Telegram-ботом для апрува. Подумай над GDPR - только opt-in контакты. В B2B это не хак, а стандарт - кто не автоматизирует, тот вручную лиды теряет.