Три компании в одной установке

У провайдера редко бывает одно юрлицо. Появляется вторая компания под другой бренд, третья — под ИТ-услуги для бизнеса, где-то отдельное ООО для видеонаблюдения. Дальше начинается знакомое: вторая копия биллинга, вторая CRM, второй ящик поддержки, и сотрудник, который держит в голове, куда сегодня заходить.
Мы живём в одной установке тремя компаниями и рассказываем, как это устроено — и где такое ломается, если сделать наполовину.
Что значит «одна установка»
В нашей системе три организации: СмИТ (интернет для дома и бизнеса), РОБОР (второй бренд со своей сетью) и ИТЦ (ИТ-услуги). Одна база, одна панель, один сервер. Разделено при этом почти всё:
| Что | СмИТ | РОБОР | ИТЦ |
|---|---|---|---|
| Телефонные линии | 3 номера | 2 номера | — |
| Ящики обращений | ask@, call@ | support@, call@ | support@, call@, dev@, audit@ |
| Воронки CRM | Интернет-подключения, Видеонаблюдение | Подключения Робор | ИТ-услуги |
| Почтовый домен | support.smit34.ru | robornet.ru | itc34.ru |
| Реквизиты в счетах | свои | свои | свои |
Сотрудник переключает организацию в шапке — и видит только её клиентов, платежи, обращения и отчёты. У кого доступ к одной компании, тот вторую не увидит вовсе.
Откуда система знает, чьё это обращение
Главный вопрос мультиорганизации звучит просто: пришёл звонок или письмо — чьё оно? Ответ даётся не выбором в интерфейсе, а тем, куда именно обратился человек.
flowchart LR
A[Звонок на номер] --> B{Чья линия?}
C[Письмо на ящик] --> D{Чей ящик?}
E[Заявка с сайта] --> F{Чей домен?}
B --> G[Организация обращения]
D --> G
F --> G
G --> H[Своя воронка]
G --> I[Свой ящик и подпись]
G --> J[Свои реквизиты в документах]Звонок — по номеру, на который позвонили. Набрали 55-40-65 — это линия поддержки РОБОР, значит и обращение РОБОР, и воронка его, и SMS уйдёт от его имени. Набрали 55-40-35 — юрлица СмИТ.
Письмо — по ящику-получателю. У каждой компании свои адреса на своём домене, и ответ уходит с того же адреса, с её подписью.
Заявка с сайта — по домену, откуда открыт виджет. У каждого бренда свой сайт, и один и тот же ассистент представляется по-разному.
Где это ломается, если сделать наполовину
Мультиорганизация — не галочка «включить». Это десятки мест, каждое из которых должно спросить «а чьё это?». Пропустишь одно — получишь ошибку, которую заметит клиент, а не разработчик. Три случая из нашей практики.
Счёт с чужими реквизитами
Модуль банковских выписок выставлял счета и акты, беря реквизиты компании... одной и той же — той, что стояла первой. Клиент РОБОР получал документ с реквизитами СмИТ. Формально бумага верная, платить по ней нельзя.
Чинится это не «подставить нужное юрлицо», а решением, откуда его брать: организация платежа → организация импорта выписки → определение по расчётному счёту получателя → организация клиента. Первый непустой ответ и есть правильный.
Виджет, который представлялся чужой компанией
AI-виджет на сайте второго бренда здоровался как СмИТ и диктовал её телефон поддержки. Причина: организацию брали только из настройки тест-площадки, а не из домена, откуда виджет открыт. Заявки при этом падали в чужую воронку — кроме тех, где в тексте случайно попадалось слово «робор».
Тут же выяснилась вторая тонкость: определять организацию нужно там, где есть запрос от браузера. Внутри функции, которая формирует ответ, никакого запроса уже нет — обращение к нему тихо уходило в обработчик ошибок, и первая версия правки выглядела рабочей, ничего не меняя.
Нумерация документов, общая на всех
Счётчик номеров счетов был один. Компании выписывали документы вперемешку, и в нумерации каждой появлялись дыры на местах чужих документов. Бухгалтерия такое замечает быстро. Правильно — счётчик на пару «организация + год».
Общее правило. Если у сущности есть организация, её надо спрашивать в трёх местах: при создании (чья запись), при показе (что видит сотрудник) и при выдаче наружу (чьи реквизиты, чей телефон, чья подпись). Пропущенное третье место — самое опасное: внутри всё выглядит правильно, ошибку видит только клиент.
Деньги и расходы тоже разделены
Разделение доходит до расхода на внешние сервисы. Звонок голосового ассистента ложится на ту компанию, чья линия; расшифровка записи — туда же; токены AI считаются по организации разговора. Когда счёт за нейросети приходит один, а компаний три, это единственный способ понять, кто сколько потратил.
То же с телефонией, SMS и хранилищем: расход привязан к организации, а не к общему котлу.
Что это даёт на практике
| Три копии системы | Одна установка с организациями |
|---|---|
| Три сервера, три обновления, три бэкапа | Один сервер, одно обновление |
| Сотрудник заходит в три панели | Переключает организацию в шапке |
| Отчёт по группе компаний — руками в таблице | Снял фильтр — увидел всё вместе |
| Клиент второго бренда живёт в отдельной базе | Общая база, разделённые доступы |
| Новая компания — новая установка | Новая компания — запись в справочнике |
Обратная сторона честная: одна установка — одна точка отказа, и права надо настраивать внимательнее, чем при физическом разделении. Зато не бывает ситуации, когда обновление доехало до двух компаний из трёх.
Как это работает в СмИТ Биллинге
Организации заводятся в справочнике: название, реквизиты, логотип для документов, почтовый домен. Дальше к организации привязываются телефонные линии, ящики обращений, воронки CRM, шаблоны документов и права сотрудников. Переключатель в шапке панели меняет весь срез данных — от списка клиентов до отчётов и графиков.
Посмотреть на своих данных
Покажем платформу на живом стенде и разберём ваш случай. Или спросите ассистента прямо сейчас — он отвечает по документации и настройкам.


