Перейти к содержимому
KAMOUniverse

Журнал изменений

Что нового.

Каждое усовершенствование платформы, как только она появится.

  1. · EmailService

    Ключи DKIM и расслабленный/расслабленный rsa-sha256 для отправки доменов организациями

    DkimKeys генерирует ключ домена RSA-2048 (сохраненный в зашифрованном блобе провайдера) и TXT значение участника публикуется по адресу kamoXXXXXX. domainkey.<domain>. DkimSigner подписывает сообщение точно так же, как Транспорт отправит его — читайте из письма — после окончательного сохранения Изменений — покрывая от и в зависимости от того, что из Присутствуют приемники заголовков и циклы обратной связи (включая идентификатор обратной связи, никогда не заголовок X, поскольку) Эстафетная полоса X-Kamo-Ref. Проверенная в тестах Apache jDKIM, независимая реализация: кампания Формированное сообщение проверяется, все еще проверяется, как только эстафета полосы X-Kamo-Ref, и выходит из строя на измененном теле. Субъект.

  2. · EmailService

    DNS для отправки доменов — сначала собственные серверы имен каждого домена, оценка SPF, имя поставщика DNS

    LiveDnsResolver запрашивает авторитетные серверы имен зоны (обнаружены через 1.1.1.1/8.8.8.8), поэтому зарегистрируйтесь. Участник, только что сохраненный у своего провайдера DNS, видится сразу, а не после отрицательного кэша решателя. истекает; он возвращается к публичным решателям на реферале или тайм-ауте и перезапрашивает TCP, когда Ответ не соответствует дейтаграмме (dnsjava 3.5 не анализирует Google). Ком усечен TXT в противном случае. SpfEvaluator оценивает политику домена для одного адреса IPv4 в качестве принимающего сервера (RFC 7208: **************** перенаправление, лимиты 10-lookup и 2-void-lookup, так что CNAME contact.kamocrm.com, a include, or a bare ip4 all read same. DnsProviders назвала компанию DNS зоны от ее серверов имен, для инструкций конкретного поставщика.

  3. · EmailService

    Распределенное реле (47.181.8.86) сеяно для каждой организации; реле платформы остается за KamoCRM

    PlatformRelayProperties теперь знает оба реле: postfix-bulk (47.181.8.87, hello.kamocrm.com) и postfix-orgs (47.181.8.86), с адресом выхода, селектором DKIM и целевыми организациями DNS отправка доменов CNAME на (contact.kamocrm.com). Оба считаются ретрансляторами, поэтому оба получают отчеты о доставке. Стартап заполнит семена k3m1-org-реле в качестве хостинга платформы SHARED (STARTTLS + PLAIN-вход с платформы SHARED) необязательный Secret bulk-org-relay-auth, самоподписанный таким образом tlsVerify выключен, выключен в собственной ротации KamoCRM Так что его почта остается на .87; сеял до тех пор, пока не будет настроен вход, и его учетные данные следуют конфигурации на Каждый старт. k3m1-bulk-relay производится только один раз.

  4. · KlusterServices

    Postfix-orgs, общий объемный ретранслятор, который каждая организация отправляет как 47.181.8.86

    Собственная почтовая рассылка KamoCRM продолжает отправляться через почтовый ящик (47.181.8.87) и обычную почту через почтовый ящик. Postfix (47.181.8.84). Почта кампании каждой другой организации получает свой собственный IP: postfix-orgs работает хост-сеть k3m1 и связывает свой исходящий SMTP с eno1 (k3m1-ext), который узел-конфигурация / k3m1-ext маршруты Этот порт и больше ничего не использует. HELO is contact.kamocrm.com, название Frontier устанавливается как IP - PTR. Слушатель hostNetwork не имеет сетевой политики, поэтому представление SASL превышает требуемые STARTTLS на порту 587. внутренний адрес узла, только из кластерных адресов (секреты по почте/SECRETS.md). Он передается только как EmailService проверял, обновлял каждую минуту — пока не появится эта карта, ничего. Тот же охранник выхода, что и постфикс, держит доставку до тех пор, пока не будет подтверждено, что eno1 уходит как .86. Результаты тех же мероприятий по доставке. Каждый отказ - это 4xx, а не 5xx. Добавленный к файлам рабочий процесс развертывания уже применяется, поэтому рабочий процесс (и полное согласование) Каждый компонент нетронут.

  5. · kamo-internal

    Вкладки кампании получают стрелки прокрутки назад, не скрывая выбранную вкладку

    На экране, слишком узком для пяти подзадач, полоса теперь показывает слева и справа. Стрелы рядом с ним, как это делает полоса вкладки с максимальным окном. С тех пор не было ни одного Первая версия, где кнопки прокрутки MUI «auto» вырезали вкладку, открытую по ссылке (?tab=archived) пополам: они появляются только после прокрутки выбранного MUI Взгляните на вкладку, возьмите 80px из полосы и собственную анимацию прокрутки MUI. Написал любую коррекцию. CampaignTabStrip помещает вкладки в простой скроллер без собственной планки (data-kamo-scrollbar="off"), показывает стрелки только тогда, когда вкладки переполнены, и Прокручивает выбранную вкладку обратно в вид, когда она меняется и когда Стрелки, которые приходят или уходят, меняют ширину. arrowState and ARROW SCROLL FRACTION Приводится из максимизированной модели TabStrip, поэтому обе полосы согласуются, когда стрелка Жить и как далеко она движется. Проверено в Chrome: в 1600px нет стрелок; в 700px и 520px каждая вкладка открывается связь полностью видна с индикатором под ней, в том числе средним; Стрелы размещают полосу в каждом направлении; ArrowRight перемещает фокус вдоль вкладок и Держите сфокусированную вкладку в поле зрения, и Enter выбирает ее. Его стрелочные метки являются компонентами. Свиток, отремонтированный вручную в каждой местности Камо-переводчик-словарь cc484906 (арабский имел «проклятие» для Свитка справа). Самые яркие красные здесь не из этого изменения и проваливаются одинаково на основных: oneScrollbar.test.ts (на NavTopMenuPanel.tsx) и recipientStatus.test.ts (4, отставание 98156e52).

  6. · kamo-internal

    Live send in the Email Campaigns widget получает прожекторную карту

    С одной отправкой в прогресс, вкладка In-Progress была одной тонкой строкой в Панель с пространством для гораздо большего, на данный момент виджет имеет наибольшее значение. Когда Каждая кампания на вкладке отправляется или приостанавливается, и панель дает каждому на Минимальная высота, каждый теперь получает карту: - насколько далеко он находится в списке, в большом количестве округленном вниз, так что Никогда не говори 100% ни о чем. - его полоса в 10px, голова и видимый блеск; - темп и оставшееся время, и "N от общего числа"; - доставлен, открыт, щелкнул и отскочил, как воронка рядом с темпом график на карте с высотой, чтобы сэкономить (настоящие длины и ставки), или как ряд фигур на более короткой или узкой; - его темп за последние 5 минут, бар за 15 секунд на часах самостоятельно границы. Бар все еще заполнен, и время, прежде чем панель увидела Отправить - это загвоздка, а не ноль. Карта имеет ссылку строки и паузу / резюме (оба теперь разделены, от Кампания. Он держится до конца, который празднует. Две посылки сидят бок о бок боком в широком панно. Выбор считывает только размер панели, который ничто внутри нее не может изменить. Он не может мерцать. Карта, которая в любом случае переполнена, запоминается для этого. Размер панели, которая затем показывает ряды. Макеты внутри карты являются Контейнерные запросы на размер карты. Модель: paceBuckets распределяет то, что перемещалось между двумя кадрами за время между ними. pushSample берет окно, а крючок держит пять минут за Живой посыл, через паузу и конец. Проверено без головы на 10-кратных часах с переменным темпом, в обычном, широком, высокие, 460 и 668x420 стекол, и с двумя посылками в широкие и высокие стекол: Карты подходят без переполнения, а планки темпа следуют за кадрами, в том числе Тихий отрезок. Ничто не движется при уменьшенном движении.

  7. · kamo-internal

    Закладки виджетов Email Campaigns - это этапы экрана кампаний

    Виджет подавал кампании под собственные Live / Sent / Drafts, которые ставили Отменённая кампания под Sent и запланированная под Live. Его вкладки теперь In-Progress, Not Started, Paused and Complete, поданный компанией CampaignTabOf с marketing.bulkEmail.tabs.*, поэтому стартовая площадка и /маркетинг / электронная почта никогда Провести одну кампанию в двух местах. Счета приходят с новых «этапов» EmailService (7481f15); ответ старого сервера засчитывается из отправленных им кампаний. Выбираем вкладку: Пока член не выберет один, панель приземляется на то, что происходит, и остается. Пока эта закладка все еще держит что-нибудь. Он движется только для того, чтобы показать посылку, которая просто Начало, или когда заканчивается собственная вкладка. Посылка, которая только что закончилась Прогресс к его празднованию, затем пана движется дальше. - Ряд, который член приостанавливает или возобновляет, остается там, где он нажал, с его Резюме, пока они не покинут вкладку. Названия этапов показывают, где они подходят рядом с «N больше», измеренный по сравнению со скрытым. копия на языке участника; в противном случае каждый этап показывает свою иконку, имя в его инструменте и доступное название. Исправления, найденные при проверке в браузере: Искры от новых открытий и кликов по завершенной кампании никогда не были видны: Линия цифр обрезала их. Теперь он зажимается только ниже и рядом с собой. И искры летят с конца счетчика, так что они выживают после падения брусьев. - Слишком узкий для своих фигур ряд нарисовал Открытый счетчик над Нажатым. The Бары идут первыми ниже 340px, и все, что еще не подходит, обертывается. Взгляд полный. Плитка KPI, слишком узкая для своего названия и скорости, эллипсирует имя («Оп...»). Вместо этого ставка теперь не видна. - "N more" подсчитал строки, выходящие из предыдущей вкладки. Проверено без головы на ширине панелей от 322 до 1360: без среза ряда, без переполнения вкладки, Имена / иконки переключаются с и без «N больше», клавиши со стрелками, финиш, проведенный тогда Они двигались дальше, и искры рассекли в 668 и 460 годах. Сервер теста паузы Ответы с приостановленной кампанией. Он вышел из строя под нагрузкой, когда виджет Перечитал 400 мс после того, как пауза вернула все еще посылавшую кампанию.

  8. · EmailService

    Виджет кампании читает по этапам, этапы экрана кампании файлы по этапам

    Виджет стартовой площадки теперь группирует и считает кампании по этапам Использование вкладок /marketing/email: In-Progress (отправка), Not Started (проект) Запланировано, приостановлено (задержано или отменено), завершено (отправлено). Неудачные файлы как Далеко дошла его посылка, как это делает там кампанияTabOf. Каждый этап завершается самостоятельно: Запланировано до черновиков и самое скорое; остановлено до отмены. «стадии» добавляются рядом с «группами», которые остаются до тех пор, пока не будет построен виджет, который читает Она развернута. До этого отмененная кампания считалась завершенной. Где пользователь решил сегодня, ему не место.

  9. · kamo-internal

    Список кампаний следует за тем, что коллеги делают с кампанией

    BulkEmailWorkspace принимает изменения кадров использоватьEmailCampaignsWebSocket сейчас Поставки (onChanged, d0b56adf). Фейм называет кампанию и то, что с ней случилось. Сама кампания никогда не проводилась, поэтому список читает эту кампанию снова. GET/campaigns/{id} и ставит его на место. Архив коллеги или восстановление ходов Как это происходит, появляется новая или дублированная кампания, и удаленный, или тот, который теперь отвечает 404, покидает список. инсценированный Количество аутбоксов следует за теми же кадрами. CreateCampaignChangeFollower поддерживает одно чтение за кампанию. Обрамление, которое прибытие во время чтения кампании (список, загруженный в срезы, объявляет о каждом из них). slice) ask for one more read once it returns, so burst costs two reads and an Старый ответ никогда не приземляется на более новый. Кампания удалена, пока читается На обратном пути его не возвращают. Проверено в Chrome против реального компонента, проталкивая кадры через крючок: a Восстановление вывело строку из Архивного с одним прочтением, а удаление удалило ее строку Ни с одним, созданный черновик появился под Not Started, и пять кадров для одного Кампания стоила двух прочтений.

  10. · kamo-internal

    Виджет Email Campaigns, в прямом эфире на стартовой площадке

    Новый домашний виджет, email.campaigns, на стартовой площадке всех, кто может открыть кампании. Пять прав (EMAIL CAMPAIGNS WIDGET, 321-325) VIEW BULK EMAIL и ADDED, OPTIONAL и MOVABLE семя из него Служба безопасности, так что он прибывает и член должен удалить. Ворота также Запрашивается маркетинговое приложение и сам VIEW BULK EMAIL. Что это показывает, читая новый /api/email/widget/campaigns Жить после этого: - Четыре цифры за последние две недели (отправлено, открывается, щелкает, отскакивает), каждый с бар в день, который читает по указателю или стрелкам, а также открывает и нажимает ставки от доставленной почты по правилу использования карты доставки (доставка, Теперь их разделяют оба. - Live / Sent / Drafts, с графами. Посылающая кампания - это полоса, которая движется, с его темпом и временем; открывается и щелкает, поднимаясь с него, когда они приземляются. А. Один говорит, почему он не может отправить; запланированный отсчитывает; отправленный показывает свои открытые и кликовые ставки. Пауза и возобновление сидя на ряду для члена Обсуждение MANAGE BULK EMAIL Кампания, которая заканчивается, пока часы на панели остаются в живых на мгновение, Перед тем, как он переедет в СИЗО. - Нижняя линия несет новости, как это происходит; широкая панель держит его в Колонка с сегодняшними суммами. - Он выкладывает для своей комнаты: две фигуры и компактные ряды на одной колонне, целые строки только на любой высоте (список обертывается, а не вырезается), и две колонки Кампании в широком панно только один раз кто-то скроет. Live half rides /topic/campaigns/<orgId>. useEmailCampaignsWebSocket каждый кадр с помощью readCampaignFrame и усиления на Engagement, onChanged и onSnapshot, плюс запрос Snapshot, который виджет выключает так стартовая площадка Никогда не просит всю организацию сделать снимок. Прогресс видит только Рамки прогресса. Финальный звон теперь горит на переходе в SENT, а не на каждый последующий кадр, в котором все еще говорится SENT (поздний отказ и отчеты о доставке) Переиздайте его в течение нескольких часов, и крючок больше не записывает своих обработчиков. рендер. Проверено с помощью tsc, скриптов защиты, новых и затронутых файлов vitest, а также Безголовая упряжка над реальным компонентом при 1x1, 2x1, 2x2, 2x3 и полной ширине.

  11. · kamo-internal

    In-Progress, Not Started, Paused, Complete and Archived вкладки, и the открывает меню

    /marketing/email делит кампании на пять подзадач, каждая с живым счетом. Каждая кампания проходит под одним: - In-Progress: отправка Не начато: черновики и запланированные кампании Пауза: приостановленные и отмененные кампании - Полное: отправлено - Архивировано: все, что член архивировал Неудачная не является собственной стадией: получатели терпят неудачу, кампания — нет. Электронная почта никогда не устанавливает его. Кампания, в которой он представлен, насколько далеко его посылают Есть. Вкладка живет в ?tab=, поэтому перезагрузка, кнопка «Назад» и общая ссылка сохраняют это; кампания меняет вкладку сама по себе, поскольку ее статус меняется вживую; и пустой На вкладке написано, для чего. Архив и восстановление находятся в меню ). каждой кампании (электронная почта 39ffa54). Только Кампания, которой нечего отправить, может быть заархивирована: черновик, посланный или Отменил один. Кнопка . открыла кампанию и меню. AG Grid возгорается от своего родного слушателя на контейнере строки, который проходит перед React's делегированный onClick, поэтому остановка рендеринга сотовой связи пришла слишком поздно и строка перешла к редактору под меню. Обработчик строк теперь пропускает клики внутри управления кликами, как это делает сетка Tracking Codes, и щелчок по имени кампании больше не толкает путь редактора дважды. Проверено в Chrome по реальному компоненту: по происхождению / основному клику the ************* с этим изменением открывает меню и идет Нигде. Вкладки, подсчеты, архив и восстановление, пустые вкладки и полоса 520px Проверили так же. Формулировка в камо-переводчике-словаре 02109cfc, выдвигается первой и пишется Руками в каждом районе.

  12. · EmailService

    Архивируйте кампанию, и виджет оставляет архивированные

    POST **************** и /unarchive (MANAGE BULK EMAIL) Очистить архив кампании, и CampaignDTO несет его. /marketing/email Экран файлов архивированной кампании под собственной Архивированной вкладкой. Только кампания, которой нечего отправить, может быть заархивирована. Запланированная, отправка Или от одного отказывают: сначала отменяют. Архивируя его, снова сохраняется первое свидание. Отправляйте сейчас, Расписание и Отправляйте в последний открытый архив, поэтому кампания отправлена снова Вернемся к рабочим закладкам. Оба анонсированы как ARCHIVED / UNARCHIVED меняют кадры, поэтому каждый открывается. Экран кампании и обновление домашнего виджета в прямом эфире. CampaignWidgetReads оставляет архивные кампании из недавних, Граф БиСтатус. Строится на kamo-shared-library ebdd15f1 ******************* Archived at, оба уже на месте. TransactionalSendRatchetTest был красным на главной перед этим обязательством и до сих пор остается. Здесь ничего не касается sendToUser. Остальные 1554 испытания прошли.

  13. · kamo-shared-library

    Кампания может быть архивирована

    EmailCampaignEntity получает ArchivedAt (archived at): когда участник архивирует Кампания, ноль, пока ее нет. Экран /marketing/email получил вкладку Archived Домашний виджет оставляет архивные кампании. Колонка уже находится на кластере, наносится вручную, так как каждое изменение схемы: ALTER TABLE email campaign.email campaigns ADD COLUMN IF NOT EXISTS archived at timetamp(6) с часовым поясом Нулевой без по умолчанию, как и другие моменты на столе, поэтому код построен Перед этим совершение читает таблицу без изменений.

  14. · EmailService

    Живое чтение и живые кадры для домашнего виджета Email Campaigns

    GET /api/email/widget/campaigns - это виджет стартовой площадки, созданный для Панель, которая сидит на домашней странице каждого зрителя кампании весь день: худые ряды без тело (CampaignLine), живые кампании сначала (отправка, пауза, расписание в ближайшее время), затем самые последние законченные и самые последние отредактированные проекты, каждая группа ограничены; точные подсчеты на группу; каждая показанная кампания открывается, щелкает и Отчеты об эстафете в одном трубопроводном Redis читаются; последние четырнадцать организаций дни; его выбор отслеживания; и серверные часы для обратного отсчета. Это требует VIEW BULK EMAIL, как и список кампаний. Три вида кадров теперь катаются /topic/campaigns/<orgId> рядом с прогрессом: Участие: CampaignEngagementPulse сначала открывается, первые щелчки и ретранслирует отчеты за кампанию и отправляет максимум один кадр в секунду на капсулу; с тем, что является новым с момента последнего кадра и сумм, как Redis держит их. - изменено: CampaignController объявляет о создании, редактировании, удалении, дублирование, расписание, отправка, пауза, резюме, отмена, аудитория и получатель изменения после совершения служебного вызова, только в качестве идентификатора и глагола. Также не проводится кампания на высшем уровне. Ид. Каждый экран кампании читает кадр с одним в качестве прогресса и копирует его счетчики в строку, поэтому кадр другая форма, несущая один, очистит счета на экранах, все еще работающих Старый код. Отправитель также подсчитывает принятые сообщения за день один раз за партию. (stats.daily «отправлено»), из которого черпают двухнедельные искровые линии виджета. Полный набор состоит из 1534 тестов с одним сбоем, TransactionalSendRatchetTest. На счету три перегрузки после c47fcf6 и не связанные.

  15. · SecurityService

    Виджет Email Campaigns доступен для всех, кто может открыть кампании

    EMAIL CAMPAIGNS WIDGET и его дополнительные, функциональные и MOVABLE политики от VIEW BULK EMAIL на сапоге, который вводит их, так что панель приземляется на стартовая площадка каждого участника, который уже может читать кампании, и это Их нужно удалять или перемещать. Не всякое семя, как и всякое семя, Развертывание никогда не прикрепляет панель к чьей-либо домашней странице.

  16. · kamo-shared-library

    Домашний виджет The Email Campaigns имеет пять прав

    EMAIL CAMPAIGNS WIDGET (321) и его четверо детей (322-325) от VIEW BULK EMAIL: каждое прочитанное за виджетом, списком кампании, Счетчики и живые кадры прогресса уже принимают это правильно, поэтому Виджет никогда не сможет обойти его. 326 является следующим свободным идентификатором.

  17. · kamo-internal

    Email-кампании - первая маркетинговая вкладка

    На вкладке «Инструменты маркетинга» теперь написано «Кампании по электронной почте, маркетинговые материалы». Социальные сети, коды отслеживания. Bulk Email выходит на фронт под новым названием Материалы берут полное название своей страницы уже показывает. Индекс /маркетинга попадает на первую вкладку, которую участник может открыть, поэтому его заказ ходы с полосой: кампании по электронной почте по умолчанию, маркетинговые материалы Участник без права электронной почты. Маршрут, клавиши этикетки и VIEW BULK EMAIL Сохрани их имена. Формулировка находится в камо-переводчике-словаре 98a21a21, нажатом первым, с Две этикетки, написанные от руки в каждой местности.

  18. · kamo-marketing

    Решения перемещаются под Ресурсы, один уровень вниз

    Верхний ряд содержал пять категорий перед номером телефона, языком Селектор и три CTA. Решения теперь являются первым элементом внутри Ресурсов. над двумя ссылками статьи и сохраняет свои восемь отраслевых страниц в качестве Вылет третьего уровня. Ничего в рендерере не изменилось: NavChild уже несет свои "дети", и юридические ресурсы были размещены таким образом все время, На десктопе и в мобильном аккордеоне оба. Это только данные. «All Industries» остается первым внуком, а не складывается в родительский ряд, потому что мобильный родитель - это кнопка переключения, а не Ссылка — /решения сами по себе недоступны на телефоне без него. Страницы решений по-прежнему освещают свою категорию: isCategoryActive Прогуливается с внуками, поэтому Ресурсы подчеркивают, где раньше были Решения. Подтверждено в /en/solutions/real-estate — Resources renders #ffffff on rgba (107,142,58,0.1) и остальные четыре остаются #9a9a9a. Проверено против запущенной страницы, а не источника. Верхний ряд читает Особенности, Услуги, Цены, Компания, Ресурсы; зависающие Ресурсы тогда Решения открывают восемь отраслей с их префиксами. Вылет шириной 200px и его правый край приземляется на 1001, 1001, 1076 и 1316 видопорты 1024 (точка останова lg, где этот nav появляется вообще), 1280, 1440 и 1920 гг. — в пределах смотровой площадки, без горизонтального обзора. переполнение. На телефоне шириной 390 открываются Ресурсы, под ним открываются Решения. Все восемь звеньев здесь. ТСК, чек-клиент-навигация и Check-i18n-ключи чистые.

  19. · kamo-marketing

    Разработка приложений, веб-дизайн и веб-маркетинг

    **************** утверждает, что бизнес платит агентству за место оплачивает программное обеспечение, которое агентство не создавало, не размещало и не хранило бегать. Это заканчивается вопросом, кто должен получить эти деньги, и у кого их никогда не было. Дверь в точку. Это дверь. 59 страниц в разделе /услуги: хаб, три столпа, 30 страниц возможностей, 12 Страницы доказательств, 5 сравнений и шесть о том, как участие на самом деле Бежит. Структура в TypeScript, проза в словаре — рисунок 37 отраслей, 45 интеграций и 41 глоссарий терминов уже используются. Переводчик может переписать каждое предложение и не может повредить слизняк. маршрут. Четыре новые коллекции, закрытые в пространстве имен «услуг» чем «коллекции»: последняя уже переведена на многие места и повторное использование будет утверждать, что французская страница службы существует до того, как слово Так и есть. Сегодня каждая служебная страница канонически на английском языке и отображается в Только английская карта сайта, которая является тем, что машина уже делает для страница, копия которой не переведена. Портфолио - это наша собственная платформа, потому что это единственная, которую мы можем позволить. посетитель проверяет: почтовые серверы, телефонные коммутаторы, WebRTC Стек медиа, конвейер атрибуции, кластер и этот веб-сайт. Каждое число на этих страницах несет в себе команду, с которой оно пришло и день. Это было прочитано, и скрипты / check-services.ts не основываются на факте, что не имеет ни того, ни другого — вместе со слизняком столба, который статичный / обслуживает ребенка будет тень, свисающая ссылка на доказательства, страница работы сирот и Сравнение, которое не может назвать дело против самого себя. Последнее правило не Украшение: страница сравнения, которая не может спорить сама с собой, является Реклама в столе. Ценообразование публикует механизм, а не таблицу. Процитируем после Найди и исправь число первым; что его движет, чего в нем никогда нет (нет процентов от рекламных расходов, нет разметки на что-либо купленное для вас) Когда вы узнаете, все на /services /how-we-quote. / Услуги / Старт публикует существующую тему намеренно — служба поддержки решает Заголовок против тем, которые уже существуют, и ответ 400 в противном случае Таким образом, тема веб-дизайна была бы составлена, развернута, выглядела бы правильно. И отвергал всякое повиновение. Два исправления доступности, которые не являются строго этой функцией, но отправляются на каждой его странице. globals.css:52: Никогда не используйте сырой цвет для небольшого текста; баннер согласия cookie сделал это в 2.18:1 на каждой странице Сайт и связанный контент сделали то же самое в отношении решений, интеграций. Альтернативы и глоссарий. Теперь оба используют удобочитаемый акцент. Ссылки на политику баннера белые — цвет-акцент-на-канве вычисляется удар точно 4.5:1 по холсту, который не оставляет места для головы На слегка приподнятой поверхности сидит баннер. Все 19 страниц сервиса, Homepage, /pricing and /solutions/* теперь проходит топор по WCAG 2.2 AA с нулем нарушения; собственные значки статьи о сборах по-прежнему не работают и Остались одни.

  20. · kamo-marketing

    Статья о подсчете подписок на программное обеспечение, и баннер указывает на него

    /all-in-one-business-software спрашивает, сколько подписок платит бизнес: контрольный список подсчитывает их и суммирует месяц и год, как читатель тикает его, что стек стоит за его пределами. счета-фактуры, что значит «все в одном», чтобы чего-то стоить, вопросы, которые нужно задать, прежде чем консолидироваться, Как и в случае с KamoCRM. Две внешние фигуры, каждая из которых названа в копии и связана с 2026 Индекс управления SaaS Zylo по неиспользованным лицензиям и кто контролирует расходы на программное обеспечение Отчет Cledara о расходах на программное обеспечение за 2025 год о том, насколько компании недооценивают количество своих инструментов. Объявление о публичной службе баннера теперь указывает здесь, а не на статью о плате за место. Его Ярлык - это новый ключ, а не новое значение для старого: словарь пропускает ключ, чей Перевод уже отличается от английского, поэтому любой другой язык сохранил бы старое. Вопрос по ссылке на эту статью. Перечислен в меню «Ресурсы», концентраторе ресурсов и карте сайта.

  21. · kamo-internal

    Полосы стартовой площадки открываются в собственную выпадающую поверхность бара

    Бар администратора и полосы с прикрепленными приложениями окрашены верхними полосами бара. градиент, а затем ответил на зависание чем-то из другого приложения полностью: белая карточка с подсказками, плавающая на двенадцати пикселях ниже полосы, и — на прикрепленном приложении Чип — MUI popover с серыми подписями и без шва к тому, из чего он вышел. Девять из них появляются и исчезают сами по себе. Неправильная палитра, неправильно Формы, прибывающие из неправильного места. Теперь они открывают ту же поверхность, что и меню верхнего бара. Она написана в Бренд организации, его верхний край принимает точный цвет, который группа имеет на месте Он уходит, филе приваривает его к этому краю, и одна поверхность скользит и Изменяет размеры от входа к входу, когда указатель перемещается по строке, поэтому группа читает как Открытие, а не как карта, проложенная над стартовой площадкой. NavTopMenuHost использует любой бароподобный элемент, а не только заголовок NavTop: «edgeGap» на одного хозяина, потому что у группы закругленные углы, а у бара нет. Как панель, так и ее филе должны соответствовать окрашенной полосе. Комната с панелью имеет рост измеряется с того места, где он фактически начинается (--kmenu-max-height) Вместо того, чтобы с высоты нава, что ничего не значит на полпути вниз по странице. NavTopMenuPanel получает «kind=»note»: ту же поверхность и то же движение. Носить прозу о триггере вместо выбора. Не претендует на роль меню и не фокусируется, поэтому описания бара администратора остаются описаниями Введите ссылку, которую они описывают. • чип прикрепленного приложения рисует те самые строки, которые рисует нав (NavToolSectionsPanel, Выключен из NavToolBarMenu, поэтому один вариант отвечает одним меню, где бы вы ни находились. предлагается — вложенные группы, значки, фильтр-бокс и все. Обе группы читают свой градиент от navTopSeam.ts. Буквальная копия этого Остановки - это именно то, что дрейфует, и шов невидим только тогда, когда Группа и группа согласны с этим. Тесты: панель администратора отображается и работает с мышью, пальцем и пальцем клавиатура (одна поверхность, переданная от входа к входу, никогда не крадет фокус), плюс Охранник источника, которого ни одна из групп не дотягивает до потопа или второй копии Опять градиент.

  22. · kamo-marketing

    Вставить домашнее маркетинговое видео на белой этикетке CRM сборы статья

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

  23. · kamo-shared-library

    WebinarNotifyMember, список дополнительных уведомлений организации

    Один ряд на (организация, член команды) в вебинаре notify member, созданный Вебинар KamoInitializerService уведомляет участников о миграции и уже применяется. The Репозиторий присоединяется к члену команды, так как каждый читатель хочет человека. Нет иностранного ключа, совпадающего с миграцией, так что обновление ddl-auto инициализатора Никогда не добавляйте.

  24. · MediaService

    Слепая копия Дополнительно уведомленных членов команды на электронных письмах ведущих

    GET/PUT/api/webinar/notify-members (MANAGE SUPPORT) читать и заменить Дополнительный список уведомлений организации; каждый идентификатор должен быть членом команды этой организации не более 25. WebinarEmailNotifier добавляет владельца Список организации в виде слепых копий на каждое письмо докладчику — забронированный, участник присоединился, участник отменил, сессия отменена, напоминание - никогда на Письмо участника, никогда собственный адрес докладчика, каждый человек один раз, и Только люди имеют право быть написанными.

  25. · EmailService

    Слепые копии на шаблоне service-to-service отправляют

    SendTransactionalRequest принимает необязательный список bcc, осуществляемый через sendToUser и доставить на конверт SMTP — включая платформо-адресную запись — так скопированный человек получает именно то сообщение, которое получает адресат. Слепые Копи обрезки, Выбрасывает адресата и дубликаты, и закрывает список на 25. Нет существующих звонков Изменения: без BCC отправка идет по пути, который она всегда делала.

  26. · InitializerService

    Webinar notify member, члены команды копировали электронные письма ведущих

    Один ряд на человека (организация, член команды): Дополнительно Уведомленный список Запланированная вкладка настроек вебинаров. MediaService слепо копирует эти адреса Каждое электронное письмо вебинара, отправленное представителю организации, которой принадлежит Тип вебинара. Новая таблица, поэтому ни одна таблица не читается другими службами; нет строк То есть никто не копируется. Применяется к производству 2026-09-13.

  27. · kamo-internal

    Пусть администратор выбирает, кто скопирован на электронные письма ведущих

    Закладка «Запланированные вебинары» получает раздел «Дополнительно уведомлены» Список типов вебинаров. Выбранные там члены команды получают слепую копию каждое автоматизированное электронное письмо, отправленное докладчику (новое бронирование, участник присоединился или отменено, сессия отменена, напоминание) для всех организаций Вебинары. Он читает и заменяет список через /api/webinar/notify-members, picks люди с одним и тем же выбором каталогов, который использует вкладка Presenters, и сохраняет явно с намеком на несохраненные изменения и сохраненным подтверждением. 403 скрывает секцию, неисправная нагрузка предлагает повторную попытку, а не пустую. Список, отказ в сохранении показывает причину сервера и изменение другого администратора Приходит в прямом эфире по теме изменения организации вебинара.

  28. · kamo-shared-library

    Канонические шаблоны для каждого письма на вебинар

    Семь шаблонов meet.webinar * — приглашенный / приглашенный докладчик / участник отменил уведомления, подтверждение участника и аннулирование, сессионно-отмененное письмо и запланированное напоминание — зарегистрировано в CANONICAL KEYS с помощью WebinarEmail создает карту переменных, которая заполняет их: время в зоне читателя, форма букера отвечает за ведущего, гостевая ссылка и личная ссылка отмены для посетителей, консольная ссылка для участников Ведущий, и блоки, которые рушатся, когда нечего показывать.

  29. · kamo-marketing

    Позвольте посетителю отменить свою регистрацию по электронной почте

    /webinar/cancel/<token> - это когда электронное письмо с подтверждением вебинара отправляет кому-то Кто больше не может этого сделать. Проверяет регистрацию через общественность Вебинар API, показывает вебинар, ведущего, дату и время (у посетителя) собственный участок и часовой пояс, с названной зоной) и длиной, и отменяет его За шагом подтверждения. Неизвестная ссылка, уже отмененная регистрация и вебинар, который уже проводился, каждый получает свое государство, и Отказ от API отображается в виде слов API. noindex/nofollow, а не в карте сайта: путь динамичен, поэтому Sitemap Walker пропускает его, и ничто не генерирует записи для него. Копии живут в Новый вебинарCancel Namespace.

  30. · KlusterServices

    Подпись Feedback-ID в подписях DKIM

    Gmail считает сообщение кампании к своей петле обратной связи только тогда, когда заголовок обратной связи-ID Подпись DKIM отправляющего домена. local.d/dkim.conf сохраняет подпись rspamd Заголовки и добавления обратной связи.

Ваша вселенная ждет.

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

Бесплатно навсегда — не требуется кредитная карта