Журнал изменений
Что нового.
Каждое усовершенствование платформы, как только она появится.
· EmailService
День разминки, на который ничего не было отправлено, не считается
День разминки был N-го 24 часа с самого начала, независимо от того, был ли он или нет. Все прошло, так что разминка началась за несколько дней до первой кампании. Тихо проводил свои малообъемные дни. День, который заканчивается без попыток Теперь повторил: он и каждый последующий день скользят вперед целыми днями, которые неиспользуемые, любое число одновременно, в то время как дни, которые использовались, сохраняют свои Окна и история. Завершение движется вместе с ними, и состояние разминки Об этом сообщает idleDaysSkipped. Пробег улаживается до того, как путь отправки что-либо учитывает, поэтому отправка Никогда не отсчитывайте против дня, который вот-вот повторится; и когда Счетчики не могут быть прочитаны, пробег оставлен, как он стоит, а не закрывается. Один день на ноль.
· kamo-internal
Кампания, которую бэкэнд не может отправить, говорит, почему и как это исправить
EmailService теперь приостанавливает кампанию вместо того, чтобы отказывать своим получателям один, когда он не может отправить его: его с платформы реле домена, или вообще нет отправителя. Отказывается отправлять, планировать и возобновляется, пока причина остается, и сообщает об этом в ходе кампании. Отправь блокировщик. - редактор и просмотр прогресса показывают баннер с причиной, Собственная фраза сервера и исправление как два шага: измените использовать поставщика по умолчанию) и возобновить, или открыть основной отправитель Настройки и резюме. Резюме остается неработоспособным, пока проект еще имеет причину - Резюме теперь сохраняет черновик первым, так что исправленный из достигает бэкэнд вместо того, чтобы кампания возобновлялась как сохраненная и отказывалась снова - отклоненная отправка, расписание или резюме показаны на месте Сообщение сервера не только в тосте, а кампания перечитывается Таким образом, его статус и блокировщик актуальны. - сеть кампаний отмечает заблокированную кампанию помимо ее статуса, с Причина в зависании Ошибки из API кампании предпочитают человеческое сообщение голому машинный код и нести статус и код
· kamo-internal
Warm-up говорит, что праздные дни не считаются и рисует даты, которые скользят
День разминки, в который ничего не отправляется, уже не считается: пробег слайдов День повторяется при отправке резюме, что делает переключение Прогревание перед первой кампанией безопасно. Теперь группа говорит так, рядом переключатель и снова в холостых и незапущенных нотах. Когда дни были пропущены, кольцо дня говорит, сколько, с Расписание продвигалось вперед многими. Каждое расписание показывает свою дату. и инструментарий диаграммы называет его, читать с каждого дня, как бэкэнд имеет Теперь, вместо того, чтобы рассчитывать на первый, так что даты скольжения являются Нарисованные. На /marketing/email праздная разминка без ожидания читается как "на, Начинается ваша следующая кампания вместо того, чтобы заявлять о доставке. быстро.
· EmailService
Кампания рассылки ретранслятора платформы откажется от сбоев сразу, вместо того, чтобы быть повторно проверенным
Эстафета посылает только как свой собственный домен и отвечает на все остальное с помощью 451, так что кампания, которая находится на другом домене, используется для повторения каждого получатель три раза, каждый раз повторите попытку разминки, прежде чем кто-либо узнает Это было неправильно. Когда провайдером организации является хост и порт реле и домен From не является отправляющим доменом реле, получатель теперь помечено как несостоявшееся с исправлением в своей ошибке: нет SMTP, нет повтора, нет Подавление, и ничто не засчитывалось против разминки или ее слота.
· EmailService
Новая разминка хоста содержит рекламную почту организации и выпускает ее в темпе разминки
Пока идет разминка организации, диспетчер оставляет свои кампании в покое. И тот, кто отпустил их, посылает им одно сообщение за раз, самое раннее из них. на протяжении всей кампании организации, никогда не пройдя почасовой лимит кампании и Никогда не пропустит разминку. Он проходит каждую секунду под Собственная аренда диспетчера, поэтому они никогда не могут отправить одного и того же получателя из разные стручки. Настройки, выбранные дни и безопасные тормоза живут в балкере поставщика Зашифрованный blob; счетчики живут в Redis и перестраиваются из рядов получателей Если проиграешь. GET, PUT и сброс конечных точек в /api/email/bulk-provider/warmup сообщать о состоянии, графике, очереди и состоянии здоровья. Оба пути теперь посылают через один метод на получателя, который утверждает, что Ссылка начинается до того, как реле ее увидит. Счетчики кампании написаны без сохранения кампании, в том числе и зачистка с прерванной отправкой; Раньше он приостанавливал кампанию в середине партии до отправки.
· kamo-internal
Ряды получателей несут контактные, а уже отправленные строки держат свой знак рядом со статусом
Получатель EmailService теперь сообщает, что кампания уже началась. По электронной почте каждый адрес. Картер переносит его вместе с Ошибка, и заполняет кампанию, которую DTO оставляет. Уже контактный ряд никогда не проводится разминкой и никогда не отправляется по электронной почте. Опять же, так сетка прогресса больше не дает ему разминку, и когда Его последний результат - это все, что угодно, кроме отправки чипа статуса, который держит небольшой "Уже послал" Марк. В шаге получателей строка с пометкой «Уже отправлено» Это также показывает, как эта отправка закончилась, когда она не просто вышла.
· kamo-internal
Кампания From Field говорит, когда основная эстафета откажется
Собственная кампания From field, по умолчанию от массового провайдера, предупреждает когда адрес находится вне домена провайдера, как почта, которая может попасть в Спам. На платформе реле это не риск, а определенность: EmailService терпит неудачу у каждого получателя кампании, чей домен не Домен отправки реле («Оптовое реле отправляет только как @domain»). Поэтому, когда поставщик массовых услуг несет реле платформы, вне домена ошибка: поле помечено, оповещение говорит, что произойдет и предлагает провайдер по умолчанию, когда это находится на домене реле, и перед полетом Блокировка до тех пор, пока она не будет исправлена. Организации на собственной SMTP Поставщик все еще получает более мягкое предупреждение о спаме.
· EmailService
Каждое сообщение кампании называет строку адресата в X-Kamo-Ref
Массовое реле записывает заголовок против своего идентификатора очереди и полоскает его перед доставки, поэтому результаты доставки могут быть сопоставлены с точной строкой получателя. Тесты композитора также определяют остальную часть того, что оставляет сообщение кампании. с: кампания от адреса и имени, каждый возвращается к основной массе имя провайдера; отображаемое имя, которое не может запустить собственный заголовок; отписаться от почтового ящика на домене, с которого на самом деле отправлена почта; и Ответьте только тогда, когда кампания устанавливает один.
· EmailService
Отчеты о доставке эстафеты отскакивают, блокируют и считают почту кампании после передачи
POST **************** Об этом сообщает The Platform Relay из чего состоит каждое сообщение, соответствующее строке получателя Заголовок X-Kamo-Ref или, в противном случае, последняя строка, отправленная по адресу Последние семь дней. Твердый отскок (5.1.x, 5.2.1, 5.4.4) обозначает ряд BOUNCED и подавляет адрес. Блок (5.7.x) отмечает, что он не работает, но сохраняет адрес. Отказ был от отправителя, а не от почтового ящика. Все остальное постоянное Явный провал. Причина отсрочки остается в силе до доставки. Перемещаются только строки, и разминка учитывает каждый отчет один раз. в день отправки сообщения, чтобы репортер мог отправить партию безопасно.
· EmailService
Расписание разминки, темп и правила здоровья
Новый IP-адрес для отправки будет расширен в течение четырнадцати дней разминки. Дни 1-7 следуют за фиксированный график на темп (консервативный, сбалансированный, агрессивный); с 8-го дня Каждый день растет на процент темпа только в том случае, если предыдущий день был здоровым. по своим показателям отказов, блокировок и отсрочек, а в остальном держит. Каждый день является Решил один раз и остался с причиной. Сообщения отсчитываются от того, что осталось от дня, со средним дрожанием и случайный перерыв, никогда не быстрее, чем в четыре раза более устойчивый темп и Никогда не опаздывайте так поздно, чтобы остальная часть бюджета больше не подходила. The Тормоз безопасности останавливается в день, когда приемники блокируются или подпрыгивают.
· kamo-internal
Разминка на баннере /marketing/email
В то время как новая разминка хозяина идет, кампании выходят гораздо медленнее. Как говорят их собственные настройки, и ничто в кампании не говорит, почему. The Рабочее пространство кампании и взгляд на прогресс кампании теперь несут тонкий День, день, день, день, день, день, день, день, день, день, день, день. Что ждет, ссылаясь на настройки разминки, и стоящий в очереди получатель Объясняет, что он проводится. Знамя скрыто, когда разминка отключена или завершена, и когда Разминку читать нельзя.
· kamo-internal
Типичный клиент отправителя с ошибками поля и конечными точками разминки
Клиент знал статус провайдера под названием PENDING, что бэкэнд никогда не посылает, поэтому отправитель, который был спасен, но еще не испытан, упал до "Не сконфигурированный". Теперь он читает PENDING SETUP (все еще принимает PENDING). нормализует все состояние в одном месте: соединение резюме, когда пароль последний раз менялся, ретранслятор платформы и может ли участник Управляй. Неудачи возвращаются в виде ошибки BulkEmailApiError, несущей статус HTTP и a 400, поле формы называется бэкэндом, так что форма может поместить сообщение на этом поле и 403 могут быть показаны как состояние доступа, а не как ошибка. Пустые 204 переносят, и записывают, что ответы с голым признанием следует GET вместо того, чтобы быть принятым Как государство, которое очистило форму после каждого спасения. Добавлена разминка: GET и PUT /bulk-provider /warmup и POST /bulk-provider/warmup/reset.
· kamo-internal
Правило подключения, предустановки и модель просмотра разминки позади основного отправителя
Чистые части, на которых построены новые экраны, каждый с тестами: - правило порта-первого соединения бэкэнда, отраженное таким образом, что форма может сказать Как KamoCRM будет подключаться до того, как что-либо будет сохранено: 465 неявных TLS с входом в систему, 587 - это СНВТЛС с входом в систему, независимо от того, что говорит Служба безопасности, любой другие порты с обновлениями и знаками STARTTLS, и все остальное Простой текст без входа - предустановки одним щелчком мыши для реле платформы и общих поставщиков - форма как ценность: что грязно, тело спасения и подтверждение того, что Запрашивает только имя пользователя и пароль, когда соединение указывает на - готовность к установке и этапы испытания послать - разминка пандуса, обратный отсчет, отправка ритма и графика номеров UseBulkWarmup опрашивает разминку каждые 15 секунд, пока закладка видна. Приостанавливается, пока она скрыта, останавливается на 403 и применяет записи. Оптимистично с откатом.
· kamo-internal
Перестроенная вкладка отправителя с новой панелью разогрева хоста
Закладка Bulk Email Sender перестраивается из одной длинной формы в набор Карты над проектом сохраненного государства: - туловище с живым статусом (спасенный, но непроверенный отправитель теперь читает) «Нужен тест»), который он отправляет как, сохраненное соединение в одной строке и когда последний раз тестировали - четырехступенчатый рельс готовности: соединение, отправитель, пройденный тест, разминка - соединение, с предустановками, управлением None / STARTTLS / SSL-TLS, а Предложение, когда набирается известный порт, и живой отчет о том, как KamoCRM будет подключаться, предупреждая, когда порт перекрывает порт. Выбранная безопасность - входной сигнал, который является интерактивным только тогда, когда входной сигнал соединения и строка пароля, в которой говорится, сохранен ли один и когда, с заменой и Удалить поставленный до сохранения - идентификатор отправителя с предварительным просмотром входящих сообщений, предупреждение, когда платформа Relay откажется от домена - липкая панель сохранения, ошибки из бэкэнда, размещенного на их поле, и Спасенное государство, взятое из собственного ответа Спасителя - встроенный тест, который рисует, куда попало сообщение, отмечая Этап, который отказался Панель New Host Warm Up расположена ниже: включения / выключения, темп, текущий день как Четырнадцатисегментное кольцо, сегодняшнее посылает против шапки с живым обратный отсчет до следующей отправки, итогов, здоровья доставки и сколько из них отчеты об эстафете, 14-дневный график с решением каждого дня и ограничение против фактического графика, сегодняшние почасовые отправки и неравномерные промежутки между Последние посылки, очередь, тормоз безопасности с Резюме сейчас и Сброс. Участник без права изменения отправителя получает вкладку только для чтения, и Отказ в чтении приводит к состоянию доступа, а не к ошибке.
· EmailService
Кампания не может быть отправлена или запланирована без основного отправителя электронной почты
Диспетчер обычно принимал такую кампанию, а затем пропускал ее на каждом шагу. тик, оставляя его в SENDING только с логовой линией. Отправить сейчас и Теперь откажитесь от него с сообщением о том, где установить отправителя. Достаточно настроенного хоста и порта; его не нужно проверять.
· EmailService
Поставщик настроек api отвечает сохраненным состоянием и называет поле, от которого он отказывается
PUT теперь возвращает полное состояние настроек вместо {success: true}, которое Оформление после каждого сейфа. Поля проверяются на стороне сервера и Отказался как 400 {ошибка, поле}; логин требуется только при подключении На самом деле, мы подпишем. Чистый пароль сохраняет сохраненный, ClearPassword удаляет его и парольUpdatedAt записей, когда один был установлен. Статус идет Возврат к PENDING SETUP только после изменения соответствующего поля доставки. Каждая запись в зашифрованный пузырь теперь проходит через один заблокированный Read-modify-write, который сохраняет ключи, которыми он не владеет, потому что капля Они также собираются провести разминку. Государство покажет, как будет работать EmailService подключайтесь, и на платформе Org отображаются настройки ее внутренней реле. Тест отправки говорит, где он не удалось (подключение, TLS, логин, отправитель, Получатель, данные) с коротким исправлением для каждого.
· kamo-internal
Предварительный просмотр отправленного электронного письма, пользовательской / нет шаблонной аудитории и реального из поля
Предварительный просмотр: диалог, который отображает собственный вывод редактора BodyHtml() строка Сохранить магазины и отправитель отправляет - так заголовок аудитории, Подпись и нижний колонтитул и нижний колонтитул соответствия все там, и это не может Отрыв от реальной электронной почты. Настольные и мобильные просмотры, «предварительный просмотр как любой» получатель или образец, слияние токенов, заполненных так, как их заполняет EmailService, конверт в стиле почтовых ящиков и песочница. Достижимый из состава Шаг, нижняя панель и вид прогресса посланной кампании. Аудитория: "Таможня / Без шаблона" ничего не оборачивает вокруг тела. Он спасен как область действия КОМПАНИИ с подписьюScope NONE (который сервер хранит и никогда не хранит) Читает), и сетка кампаний маркирует его как пользовательский. Из: собственного От имени и адреса полей, по умолчанию из основной электронной почты Поставщик и редактируемый для каждой кампании, с сбросом по умолчанию и предупреждением когда адрес находится вне домена провайдера. Это заменяет отправителя. Он был получен из аудитории и радио без ответа. Получатели: адреса кампании уже отправлены по электронной почте с пометкой "Уже «Отправлено», с уведомлением о том, что они никогда не будут отправлены по электронной почте снова; Об этом сообщает получатель.
· KlusterServices
Подпишите hello.kamocrm.com со своим собственным ключом клиента, самим доменом
Почта кампании выходит как hello.kamocrm.com через postfix-bulk. Он получает свое собственный ключ DKIM (клиент выборки, опубликованный как customer. domainkey.hello), Используйте esld = false so a hello. kamocrm.com сообщение подписано d=hello Вместо того, чтобы вернуться к почтовому ключу родителя, который не соответствует строгим требованиям. Выравнивание DKIM (adkim=s) публикует домен.
· KlusterServices
Postfix-bulk, второе исходящее реле для предвыборной почты, с результатами доставки
Почта кампании теперь отправляется через собственное реле на k3m1 (выход 47.181.8.87) Привет. kamocrm.com, поэтому жалобы на массовые почтовые рассылки никогда не касаются Репутация Mail.kamocrm.com (47.181.8.84). - простотекстовое реле на порту 25 только для EmailService (NetworkPolicy); принимает только отправителей @hello.kamocrm.com и отказывается от чего-либо еще 4xx, никогда 5xx, потому что диспетчер кампании подавляет любой 5xx. - Охранник задерживает доставку, если только не публичный адрес капсулы 47.181.8.87, поэтому оптом никогда не может спокойно уйти как другой IP. Боковая коляска для доставки читает журнал почты и сообщает о каждой кампании сообщение доставлено / отложено / отскакивает / истек результат в EmailService, К нему присоединяется заголовок X-Kamo-Ref, который раздевается перед доставкой. На данный момент применяется вручную: deploy-services.yml использует почту / файлы по имени И пока не перечисляет их.
· EmailService
Кампания отправляет электронный адрес максимум один раз, когда-либо
Адреса подобраны подстриженными и чувствительными к делу, а также ряд кампании Он был передан в эстафету (отправлен, в полете, отскакивал, потерпел неудачу или подвергся повторному испытанию). постоянное упоминание этого адреса: никогда не удаляется, не сбрасывается и не переставляется. Получатели, используемые для удаления каждой строки и восстановления списка в каждой строке сохранение, поэтому редактирование приостановленной кампании помещает уже отправленные адреса обратно в очередь. Он теперь хранит историю, освежает ряды, еще не контактировавшие на месте, удаляет только неконтактные строки, которые покинули список, и никогда не добавляет Обратиться к кампании связались, однако много раз она добавляется. - Диспетчер утверждает, что идет ряд, прежде чем эстафета увидит его. авария между реле, принимающим сообщение, и строкой, помеченной SENT, используемой для Оставьте его в силе и отправьте его снова; теперь он остается отождествляющим и подметание закрывается. Это как неудача без повторения. Получатель, добавленный во время паузы кампании, так и не получил времени на релиз. Он так и не был отправлен, и кампания так и не была завершена. Время выхода теперь идет Всем, кому не хватает одного. - Уникальный индекс запуска (campaign id, lower(trim(email))) поддерживает правило За столом. Конечная точка списка получателей теперь возвращает имя каждой строки, значения слияния, источник и связывались ли с ним, поэтому повторное открытие и спасение проекта больше не Стирает персонализацию. От адреса возвращается к основному провайдеру, И имя отсылается (сохраняется и отбрасывается).
· kamo-internal
NoReply Outbound — это богослужебный аудит почты, отправленной в качестве адреса платформы NoReply
Открывается третий раздел в разделе Почта, показанный только членам, имеющим право на бог. /messages/outbound/noreply: каждое сообщение EmailService реле как адрес платформы NoReply, сначала новейший, с поиском, Отправленный/отклоненный фильтр и ящик, показывающий полное сообщение. Страница отворачивает любого, кто не имеет права на Бога. Такова любезность, не блокировка: данные поступают из EmailService, который отказывается от любой сессии Без ГД.
· EmailService
Реестр каждого сообщения, отправленного в качестве адреса платформы NoReply, читаемый только Богом
Записанная в EmailSmtpService в одном месте почта достигает эстафеты, и решается по адресу From, поэтому транзакционные шаблоны, кампании и Акции статей покрываются без выбора. Отказы регистрируются с основанием эстафеты и до сих пор отброшен. Письмо работает само по себе сделка и никогда не бросает: неудавшийся аудиторский ряд не может выйти из строя или откатиться назад Посылка. GET/api/email/noreply-outbound lists the ledger (поиск, фильтр состояния, Пейджинг, тела исключены; /{id} возвращает одно сообщение своим телом. Оба Требуется GD на сессии и ничего больше: книга охватывает все организации, так что ни один орг-скап-право не может открыть его. Таблица создается при запуске NoReplyOutboundSchema, как Реестр обмена статьями.
· kamo-internal
Ссылка отслеживания может приземлиться на статью с белыми ярлыками о сборах CRM
Добавляет ******************* в пункты назначения, которые предлагает сборщик ссылок /маркетинг/отслеживание, с собственной иконой. Путь свободен, как и его братья и сестры: Маркетинговый сайт 308s это до ******************* и сохраняет скидку = по всему миру hop, то же, что и /pricing (проверено на живом сайте). Ярлык строки и подсказка находятся в Камо-трансляционный словарь 7a6fd4e2.
· kamo-marketing
Позвольте читателю отправить статью о сиденье кому-то, кого он знает
Форму «Передай это» у подножия **************** достигнутый от чипа вверху и строки после семи вопросов. Имена читателей до трех человек, и мы отправляем по электронной почте каждому из них статью один раз. Имя читателя на нем; они также могут открыть его в своем почтовом клиенте или копии. Вместо этого ссылка. POST/api/share-article gates it before EmailService sees it: same-origin только, *** проверенная серверная сторона против *** сервиса (другой формирует здесь вперед полезную нагрузку без чьей-либо проверки и самостоятельно отправляет Только для посетителей в ЕС / ЕЭЗ, Великобритании и Швейцарии. Он направляет тело Построенный из ограниченных полей, с адресом посетителя, записанным на нашем входе, EmailService /api/internal/article-share, который обеспечивает соблюдение ограничений и список отказов от платформы. Развертывание считывает INTERNAL AUTH SECRET из существующего mlos-internal-auth секрет (необязательно, поэтому сайт все равно начинается без него) и выигрывает EMAIL SERVICE URL и CAPCHA SERVICE URL.
· EmailService
Отправьте кому-нибудь статью в качестве платформы с рабочим отказом
Посетитель на маркетинговом сайте может отправить статью до трех людей. POST/api/internal/article-share (X-Internal-Auth) /api / внутренняя конечная точка) отправляет каждому из них по одному электронному письму. Организация, от "<sender> через KamoCRM" с ответом отправителю. Повторно использует существующее вместо добавления второй копии: - Opt-outs живут в email suppressions, нажаты на id платформы, поэтому Отказ здесь никогда не затрагивает список размещенной организации, а список организации никогда Блокирует это. Ссылка - это подписанный токен (orgId | email, HMAC), который UnsubscribeController и страница теперь принимаются вместе с кампанией Токены, с тем же RFC 8058 List-Unsubscribe заголовки рассылают. - Доставка проходит через ****************, который получает прибыль DeliveryOptions (имя дисплея и дополнительные заголовки) - решение SPF И ретрансляционный запас хода решен в одном месте. Письмо, составленное по звонку Не имеет шаблонного ряда, поэтому счетчик использования пропущен для него. Лимиты, засчитанные из хешированной книги **************** Создано на старте) так что каждая капсула соглашается: три человека на запрос, предустановлено только 10 в день на отправителя и на адрес посетителя, 500 в день в целом; одно электронное письмо на адрес каждые 90 дней, но не на закрытый адрес. Также устанавливает bulk-email.unsubscribe-base-url в prod configmap. Код По умолчанию пустой, который отправляет рекламную почту без ссылки на отказ от подписки.
· kamo-marketing
Поместите каждую страницу в /sitemap.xml и перечислите страницы только на языках, которые у них есть
/sitemap.xml был индексом, поэтому его открытие показало 79 имен файлов, а не Страницы сайта. - /sitemap.xml теперь один <urlset> с каждой страницей: 18 700 из них Его английский адрес, с каждой языковой версией, в которой он существует. Попеременно. Это в пределах 50 000-URL / 50 МБ протокола. Для одного файла; после него файл отклоняется целиком. Запись Changelog Войдите без их заместителей, которые поместят файл около 60 МБ. Каждый Страница ввода декларирует свои языки. - файлы на языке, где каждая языковая версия представляет собой собственный URL-адрес; Перейдите на /sitemap-index.xml. robots.txt имена обоих файлов. Страница, копия которой имеет собственное пространство имен сообщений, указана и имена только в тех местах, где пространство имен действительно переводится в: по крайней мере 90% его струн присутствуют, менее 30% идентичны Английский (app/lib/message-locales.ts). Новый **************** Статья и /ресурсы не имеют Переводов пока нет. Они были во всех 21 регионе, 20 из них английская страница. Под другой приставкой. - На страницах сборника вместо "коллекций" прочитана та же живая мера Жесткое кодирование COLLECTION CONTENT LOCALES. Копия коллекции суахили имеет С тех пор, как этот список был написан, было переведено 132 реальных страницы на суахили. Он указал на их канонический английский.
· kamo-internal
Выбор отдела проверяет членов, которых он показывает
Режим Directory's per-department Select использовался для переключения всего списка в режим выбора без каких-либо изменений. Проверяли и читали «Сделано», пока снова не нажали. Теперь он проверяет каждого члена этого отдела. показывать (поиск и все / Онлайн / Оффлайн полоса решить, кто) и отпускает любого проверенного Снаружи. Он всегда читает Select и отключен только для этого отдела во время выбора. Это именно те строки; откажитесь от одного, проверьте кого-то в другом месте или фильтр, который показывает другое. Ряды возвращают его. Собственный ряд зрителя исключен: групповой чат или встреча, которую они начинают, включает их в любом случае. В противном случае встреча отправит им приглашение в чате. Инвалид с ариа-инвалидом, поэтому пользователь клавиатуры держит фокус внутри ловушки панели и затемняется Непрозрачность, потому что цвет .operator-label важен под «важным: истинным».
· kamo-marketing
Публичное объявление о том, кто держит плату за программное обеспечение
Новая страница **************** Объяснение, для нетехнических Владельцы, как работают перепродаваемые платформы с белыми метками: плоская лицензия агентства, на место плата, которую агентство держит, и дозированное использование, выставленное сверху. Заканчивается вопросами Спросить перед подписанием и чем отличается KamoCRM. Серверная статья со статьей и BreadcrumbList JSON-LD, собственный OG Карта, калькулятор сидений и CTA для бесплатной регистрации, демонстрации, контакта и телефона. Связано с меню Ресурсы и концентратором, от баннера сайта в качестве PSA до слева от журнала изменений и указан в карте сайта.
· kamo-marketing
Перечислите каждую страницу на каждом языке, на котором она существует, и заставьте каждую страницу согласиться
/sitemap.xml перечислил каждую страницу один раз в качестве своего английского URL. 17 843 Changelog У записей вообще не было языковых альтернатив, и каждый hreflang страницы назывался 21 место, независимо от того, существует ли в них страница. Каждая языковая версия теперь является собственным URL-адресом, несущим полную страницу. взаимный кластер hreflang и x-default: рекомендуемая форма Google Тот, который находит локализованную страницу, не дожидаясь сканера Используйте альтернативную ссылку на него. Версия указана только там, где она является канонической: SITE LOCALES рукописные страницы, посты в блоге и страницы списка Changelog; COLLECTION CONTENT LOCALES для сравнений, решений, интеграции глоссарий; а для статей КБ и записей в журнале изменений - местность KBService Служба безопасности сообщает о реальном переводе. Эхо английского языка Не считается. Перечисление версии, которая канонически на английском языке представляет URL Это нельзя индексировать. На каждой странице <head> имена точно одинаковые. LocaleAlternates() принимает Локалы, в которых существует страница, и место за пределами них, канонические для английского языка. Без ноиндекса. Сборные страницы в локальных каталогах без копий, используемых для Будьте noindex, в то время как каждая другая страница все еще называет их альтернативными. - индекс делится на разделы (страницы, коллекции, каждый раздел КБ, страницы списка changelog, записи changelog, каждый файл со своим последним модом и хорошо в пределах 50 000-URL / 50 МБ. Changelog файлы самые старые Во-первых, полный файл никогда не меняется. Перечислены страницы списка Changelog 2..N, каждая из которых является канонической. - /sitemap.json - один потоковый документ, содержащий каждую страницу и каждый Язык URL. /api/sitemap служит тем же документом. Источник, который не может быть прочитан ответами 503, а не частичной картой сайта.
· KBService
Скажите, в каких местах каждая статья действительно переведена на
Карта сайта маркетинга теперь перечисляет каждую языковую версию каждого справочный центр, документация и справочная статья API и каждая страница статьи Назовите остальных, как его чередуются hreflang. Никто не может сказать перевод от эха: TranslateService отвечает на указания, для которых у него нет провайдера Английский источник, поэтому строки sw и ta повторяют английское название и тело. Слово в слово (измеряется 2026-09-11). Имена, которые будут указывать поисковые системы На страницах, канонических на английском языке. Узлы деревьев и одиночные чтения теперь несут «места»: места, название или название которых Тело отличается от английской статьи. Достаточно одного тела - араб. Ряд может сохранить английское название над переведенным телом. Вычисляется в одном запросе по запросу KbTranslatedLocalesService, который читает EntityManager, поэтому не требуется выпуск совместной библиотеки.

Ваша вселенная ждет.
Начните бесплатно через несколько минут. Добавляйте продукты, когда будете готовы — без миграции, без новых логинов.
Бесплатно навсегда — не требуется кредитная карта