скрипты на все случаи жизни
Сисадмину: Пишем скрипты на все случаи жизни
Каждый, кто работал сисадмином UNIX-систем, рано или поздно начинает автоматизировать свою работу с помощью скриптов.
Написаны они могут быть на чём угодно — от bash’а до tcl. Важен подход.
В этой статье я попробую вкратце описать приемы скриптовой автоматизации.
Когда нужно писать скрипты?
1. Когда это приведет к экономии времени.
Если нужно однотипно настроить 1000 свитчей, разослать спам приглашения на конференцию или собрать базу MAC-адресов — скрипты наши лучшие друзья.
2. Когда некие действия выполняются регулярно.
Архивирования резервных копий, очистка mysql-базы от мусора или сбор статистики — те самые случаи.
3. Когда нужно создать что-то сложное, но лениво делать это «по серьёзному».
Примеры — микробиллинги, счетчики трафика и системы блокировки должников.
Это нужно писать на C/C++. Но начальство сказало: «Сделать сегодня!». И снова скрипты — и мысль «когда-нибудь перепишу». 🙂
Когда не нужно писать скрипт?
Всегда, когда это не нужно согласно трём первым пунктам.
Хотя если хотите — пишите. Время ваше. 🙂
Несколько примеров из личной жизни
1. Скрипт починки всех таблиц mysql. Ставил на хостинг по крону — сразу пропали звонки абонентов на тему неработающих сайтов на mysql. [bash]
2. Массовое выполнение команд на свитчах AT-8000S. [perl]
iplist.txt — список свитчей в формате ip:login:password
command.txt — список команд.
3. Проверка работы демона — полезно при наличии падучих программ.
Можно убрать while и запихнуть в кронтаб.
Заключение
Скрипты можно писать. Скрипты нужно писать. Удачи. 🙂
26 полезных плагинов и скриптов в After Effects
Моушн-дизайнер и преподаватель в Bang Bang Education Константин Новиков составил большую подборку полезных скриптов и плагинов в After Effects на все случаи жизни — и объяснил, зачем нужен каждый из них.
Zl Explode Shape Layers: разбирает и группирует шейповые слои, которые были созданы, например, в Illustrator, а также убирает артборд, который часто очень мешает работать.
Reposition Anchor Point: очень простой скрипт, который дает одну удобную функцию — перемещение энкор-пойнта в один из углов объекта или в центр. Вы просто выделяете все объекты, у которых вам нужно сместить AP, и нажимаете «переместить».
Flow: скрипт, который позволяет удобно управлять графиками скорости и значения. Кроме того, в нем много предустановок шейповой анимации.
Motion: «швейцарский нож», которым пользуются многие моушн-дизайнеры. В нем есть все перечисленное выше плюс около полусотни встроенных скриптов, которые позволяют делать анимационные ходы и приемы одним кликом. Например, сгруппировать анимацию нескольких слоев под одним слайдером или добавить какую-то элементарную физику в сцену. Есть даже функция, которая чистит проект и группирует все исходники по отдельным папочкам.
Overlord: своеобразный телепорт для данных между After Effects и Illustrator. Одной кнопкой он перекидывает все шейпы в АE, при этом вам не нужно сохранять какие-то дополнительные файлы и при необходимости можно также переслать вектор обратно.
Limber: предназначен для того, чтобы очень быстро создавать конечности — руки, ноги, пальцы, ну или, например, лапки у паука. В первую очередь используют для создания конечностей с угловатыми суставами — локтями и коленями.
Rubber Hose: этот скрипт делает классические диснеевские руки-сосиски и ноги-сосиски, у которых нет локтей и которые прекрасно тянутся.
Character Tool: по своей механике ближе к Rubber Hose. Кроме того, в скрипте есть еще куча мелких, но полезных функций.
DuIK: скрипт номер один для персонажных аниматоров. Он не очень юзер-френдли, но это связано, скорее всего, с большим количеством функций в нем. Это целая система для производства персонажей с руками, ногами, позвоночником и хвостом. В нем постоянно пополняющийся список анимационных предустановок. Чего только стоит кнопка «цикл походки», которая заставляет вашу марионетку шагать (у аниматоров это занимает минимум полдня), или «кей клинер», который оптимизирует анимацию и позволяет добавить в нее «изинги» и «овершуты». Скрипт постоянно развивается и абсолютно бесплатен. Пользуюсь им не только для персонажей.
Newton: плагин, который добавляет физику в проекты: если вам, например, не хочется разбираться с графиками и думать, как должен прыгать мячик, или нужно сделать так, чтобы сотня мячиков упала и заполнила логотип. Пару лет назад Apple сделала себе целый ролик на этом плагине. Одним словом, плагин позволяет соединять объекты невидимыми пружинками между собой, бросать их вниз и наслаждаться тем, как физика все делает за вас.
rd: comp setter: целая группа скриптов, которые упрощают работу. Например, rd: comp setter позволяет изменить параметры всех выделенных композиций: сменить им разрешение или частоту кадров. Около полусотни скриптов на все случаи жизни.
Rift: в пару кликов можно упорядочить слои и ключи в композиции на ваше усмотрение: выстроить их по CTI (бегунку) или же, наоборот, сделать их хаотичными. В проектах, где, например, надо сделать сдвижку в один кадр в сотне слоев, но чтобы при этом анимация заканчивалась в определенную секунду (выравниванием ключей), это незаменимый помощник.
Declutter: все очень просто: скрипт наводит порядок в проекте. Создает папочки и сортирует все элементы проекта. Помогает при работе с чужими проектами.
FormParticularStardust: три эффекта, которые по-разному работают с частицами. Можно сделать падающий снег, вращающиеся вихри, что-то похожее на дымку или логотип, разлетающийся на мелкие точечки. Stardust имеет нодовую систему и поэтому людям, склонным к визуальному программированию, легко найти с ним общий язык.
Element 3d: плагин номер один для тех, кто хочет работать с 3D-объектами в AE без использования сторонних программ. Может превратить любой текстовый слой в 3D-текст, работает с готовыми 3D-файлами. А еще имеет наборы объектов, благодаря которым можно, например, собрать огромный трехмерный город (Metropolitan Pack) и сделать пролет камерой по нему — причем это займет у вас не больше получаса, включая рендер.
Optical Flares: второй плагин от Эндрю Крамера и студии VideoCopilot. Это большая база настраиваемых бликов, вспышек и пересветов. Его часто используют для того, чтобы оживить параллаксы или видео, добавив в них игры света и бликов.
Deep GlowVibrance: два плагина, которые позволяют добавить эффект свечения в ваши объекты.
Slitscan: делает эффект отставания или замораживания линии пикселей.
AE Pixel Sorter: эффект стекания пикселей по контрастной области.
Lockdown: позволяет неплохо прикрепить текстуру к неоднородному и неплоскому движущемуся объекту.
Три плагина-диспетчера рендера для опытных пользователей, которым не хватает настроек и кодеков в Media Encoder:
19 полезных shell-скриптов на все случаи жизни
Содержание статьи
Командная строка и те невообразимые вещи, которые с ее помощью можно творить, — визитная карточка UNIX и всех ее наследников. А где есть командная строка, там есть скрипты. И сегодня. нет, мы не будем учиться писать скрипты, мы рассмотрим наиболее полезные из них, те, что ты сможешь применять ежедневно для решения самого разного круга задач, начиная от сводки погоды и веб-сервера в одну строку и заканчивая ботом для твиттера в десять строк и скриптом для автоматического запуска любого торрент-клиента.
Сразу оговорюсь, что я вовсе не приверженец шаманизма и ни в коем случае не призываю тебя сидеть в зелено-черной консоли и набирать кучу букв, чтобы выполнить действия, для которых в графическом интерфейсе достаточно навести мышку на нужный элемент. Однако я убежден, что для решения многих задач консоль и скрипты годятся гораздо лучше графического интерфейса и поэтому пренебрегать ими никак нельзя. Тем более что любая DE позволяет создать для скрипта иконку, так что для его запуска даже не надо будет открывать консоль.
Простые примеры
Итак, не разглагольствуя понапрасну, сразу перейдем к примерам:
Эта простая команда покажет тебе внешний IP — идеальный вариант, если в Сеть ты ходишь через роутер. Все, что она делает, — просто обращается к серверу ifconfig.co, который возвращает обратно IP-шник одной строкой вместо полноценной веб-страницы.
И да, это вовсе не скрипт, это просто команда, но, чтобы превратить команду в скрипт, достаточно поместить ее в текстовый файл и первой строкой добавить так называемый шебанг, то есть символы #!, за которыми следует имя командного интерпретатора:
Далее скрипт сохраняем в каталог
/bin и назначаем права на исполнение:
Теперь его можно вызывать из командной строки командой myip.sh.
Этот скрипт позволяет получить сводку погоды на четыре дня. Принцип тут такой же, как в случае с ifconfig.co.
Сводка погоды в консоли
Xakep #212. Секреты даркнета
А так можно получить краткое описание чего-либо в Википедии, причем с помощью DNS-запроса вместо обращения к веб-серверу. Кстати, веб-сервер через командную строку тоже очень легко создать:
Данный скрипт основан на утилите netcat (nc), которую называют швейцарским армейским ножом для сетевых операций. Скрипт запускает цикл, выполняющий команду nc, которая слушает 80-й порт и в ответ на запрос отдает file.html, отправляя переданный запрос в никуда (символ означает noop, то есть пустую операцию).
С помощью простых скриптов и команд можно запросто слушать интернет-радио:
Естественно, плей-лист в формате M3U необходимо заранее скачать с сайта радиостанции. Кстати, если запустить MPlayer с аргументом —input-ipc-server=/tmp/mpvsocket, им можно будет управлять, записывая команды в файл. Например, настроить громкость:
Создай два скрипта: один для запуска, другой для остановки радио (со строкой killall mpv), повесь их на рабочий стол и настрой горячие клавиши DE на управление воспроизведением. Вуаля, у тебя готов плеер для интернет-радио, запустить который можно, просто кликнув по иконке на рабочем столе. И он почти не будет расходовать память или занимать трей.
Но отвлечемся от сетевых операций и вернемся к локальным делам.
А это уже скрипт, который запускает команду в ответ на изменение файлов в каталоге. Ее можно использовать для множества разных целей, например для автоматического включения плеера при сохранении MP3-файла. Или просто выводить уведомление на десктоп, используя в качестве команды notify-send:
Десктоп
Раз уж мы заговорили о десктопе, то продолжим. Как и консоль, его тоже можно заскриптовать. Вот, например, скрипт, загружающий случайные обои, опубликованные на reddit-канале wallpaper:
Здесь все просто. С помощью wget скрипт загружает страницу www.reddit.com/r/wallpaper, передает ее grep, который ищет на ней ссылки на imgur, выбирает случайную ссылку с помощью shuf, загружает ее опять же с помощью wget и устанавливает в качестве обоев, используя команду feh (это такой миниатюрный просмотрщик изображений, его нужно предварительно установить). Скрипт можно добавить на рабочий стол, и тогда по клику у тебя будут меняться обои.
А это скрипт для включения/выключения тачпада ноутбука: включает, если отключен, и наоборот. В своей работе использует утилиту synclient, позволяющую управлять тачпадами производства Synaptics (90% тачпадов делают они). При запуске без аргументов утилита выводит различную информацию о тачпаде, в том числе строку TouchpadOff = 1, если он активирован, и TouchpadOff = 2, если отключен. Скрипт находит это значение и в зависимости от состояния тачпада включает или отключает его.
Ту же самую команду можно использовать для создания полноценной камеры слежения, которая делает снимки в моменты, когда юзер прикасается к мыши:
Для записи полноценного видео с веб-камеры можно использовать такой скрипт:
В результате ты получишь video.avi в формате MPEG4 с битрейтом 1800 и аудиодорожкой в формате MP3 с битрейтом 128.
А так ты можешь записать скринкаст. 1366×768 — разрешение рабочего стола. Просто сделать скриншот отдельного окна всегда можно с помощью команды import:
После ее запуска значок мыши изменится на «прицел», с помощью которого можно выбрать окно. Повесив эту команду на клавиатурную комбинацию, ты получишь практически идеальную систему снятия скриншотов, абсолютно не жрущую память, как это делают специализированные приложения, постоянно висящие в трее.
Подключить и настроить внешний монитор тоже можно из командной строки:
Данный скрипт предполагает, что основной монитор носит имя LVDS, а внешний — VGA-0. Это стандартная ситуация для ноутбуков; если ты не уверен, можешь проверить вывод команды xrandr: при передаче скрипту аргумента off он отключает внешний монитор, аргумент on, в свою очередь, включает его, располагая по левую сторону от основного (аргумент —left-of LVDS в первой команде). Далее скрипт добавляет новую конфигурацию для монитора с разрешением 1920 x 1080 и активирует его. В самом конце скрипт устанавливает дефолтное значение DPI — как показывает практика, при подключении монитора с другим разрешением оно часто слетает.
Он же поможет сгенерировать нестандартное разрешение, «не поддерживаемое» монитором по умолчанию.
Google, Twitter, Dropbox и торренты
Отвлечемся от десктопных дел и поговорим о сетевых сервисах. Начнем, разумеется, с Google. Вот так будет выглядеть скрипт для получения первых десяти результатов поиска:
Скрипт делает запрос к Google с помощью уже знакомого нам curl, заменяя пробелы в поисковой строке на плюсы. Далее выискивает в ответном HTML ссылки и выводит их на экран. Все просто, хоть и кажется сложным.
Ищем в Google из командной строки
Второй популярный сервис — YouTube:
Здесь все совсем просто. Скрипт всего лишь проигрывает видео с указанным в аргументе ID с помощью плеера mpv. Естественно, youtube-dl придется установить заранее.
Как насчет твиттера? Нет проблем, вот полноценный бот, который на входе принимает команду, выполняет ее с помощью командного интерпретатора и отправляет результат указанному юзеру.
Скрипт использует консольный клиент ttytter, читая в цикле последнее direct message, далее он проверяет, не была ли такая команда уже выполнена, и, если нет, выполняет ее и отправляет указанному в переменной USER пользователю, попутно обрезая до 140 символов.
Чтобы все заработало как надо, тебе придется установить ttytter, запустить его, ввести приведенную им ссылку в адресную строку браузера, скопировать показанный браузером ключ аутентификации и ввести его в ttytter. Естественно, перед тем как это сделать, следует завести для бота отдельного юзера и залогиниться под его учеткой.
Ttytter запрашивает ключ
Твиттер можно использовать не только для выполнения команд, но и для мониторинга машины. Следующий скрипт отправляет в ленту сообщение с информацией о состоянии машины (имя хоста, uptime, нагрузка, свободная память и нагрузка на CPU):
Мониторинг машины с помощью Twitter
Ну и под конец приведу скрипт, не связанный с сетевыми сервисами, но имеющий прямое отношение к сетям и к тому, зачем мы обычно их используем. Это скрипт для запуска и остановки торрент-клиента во время простоя машины:
Скрипт уходит в бесконечный цикл, каждую минуту проверяя, сколько миллисекунд прошло с момента, когда юзер что-либо делал (для этого используется команда xprintidle). Если прошло уже 600 000 мс (десять минут), скрипт выполняет команду, указанную в переменной STARTCMD. В противном случае он выполнит команду STOPCMD, но только тогда, когда до нее была выполнена команда STARTCMD. Если кратко: ничего не делаешь за компом десять минут — запускается STARTCMD, в данном случае это команда запуска всех закачек с помощью Transmission, если нет — приостановка всех закачек. Не любишь Transmission? Нет проблем, вот команды для Deluge:
Вместо выводов
Не удивлюсь, если все описанное в статье покажется тебе очередным велосипедостроением, и даже соглашусь с таким мнением. Все-таки современный Linux — это не та система для сумасшедших экспериментаторов, какой она была пятнадцать лет назад. Сегодня для каждой задачи можно найти отдельный, отлаженный и хорошо работающий инструмент, в том числе графический. Другое дело, что не совсем понятно, стоит ли захламлять систему тяжеловесными написанными на Python приложениями с кучей зависимостей, когда ту же задачу легко решить с помощью простенького скрипта.
Каким путем пойти — выбирать тебе. Встанешь ли ты на темную сторону или выберешь путь джедая?
Евгений Зобнин
Редактор рубрики X-Mobile. По совместительству сисадмин. Большой фанат Linux, Plan 9, гаджетов и древних видеоигр.
Готовые скрипты продаж: шаблоны для холодного обзвона
Психологи утверждают, что человек помнит только 20% того, что слышит. Каждое слово имеет значение, и чтобы клиент запомнил только важное, применяются скрипты продаж. Это сценарии поведения для менеджера, где пошагово описано, что и в какой ситуации он должен говорить. Разберем, что должно быть в эффективном скрипте продаж, и рассмотрим несколько готовых шаблонов.
Скрипты существуют на все случаи жизни, а вернее, для каждого типа работы с покупателем, однако сегодня мы разберем самый ходовой — скрипт для холодных продаж по телефону.
Содержание:
Разбираем скрипты по частям
Начнем с B2C-продаж, то есть с обзвона частных лиц. Скрипты продаж для менеджеров по продажам будут строиться по следующему сценарию:
Этап | Описание |
Приветствие | Вводная фраза. |
Представление и выяснение обстоятельств | Менеджер называет свое имя и компанию, а затем уточняет, удобно ли собеседнику разговаривать. |
Выявление проблем | Менеджер заводит речь о проблемах, которые может решить предлагаемый им продукт/услуга, пытаясь вывести клиента на признание наличия этих проблем. |
Цель звонка | Менеджер предлагает клиенту свой продукт или услугу. |
Ответ на возражение | Если на предыдущем этапе клиент отказался, то нужно выявить причину отказа и попробовать переубедить собеседника. |
Прощание | Менеджер обговаривает следующий шаг взаимодействия с клиентом: новый звонок, встречу и так далее. Если же переговоры прошли неудачно, просто прощается с собеседником, поблагодарив за уделенное время. |
Структура скрипта для B2B-сектора, когда идет прозвон организаций, почти такая же. Отличие в том, что прежде чем приступить к беседе, необходимо «выйти» на лицо, принимающее решение. Трубку, скорее всего, возьмет секретарь, и его нужно обойти, доказав, что сотрудничество более выгодно для клиента, чем для вас. И только когда вас соединят с руководителем подразделения или главным боссом, нужно начинать работать по вышеуказанному скрипту.
Некоторые компании обходят секретаря обманом: притворяются, что звонят по поводу трудоустройства, и лишь после связи с нужным лицом раскрывают карты. Поступать подобным образом или нет — решать вам, но мы рекомендуем поддерживать репутацию компании в максимально «чистом» виде. Она вам еще пригодится.
Кстати, по статистике компании Sirius Decisions, средний менеджер бросает попытки связаться с ответственным лицом уже после второго звонка. При этом для успешной генерации лида в B2B-сфере может потребоваться от 7 до 13 контактов. Будьте настойчивы!
Шаблоны скриптов продаж
Приведенные ниже шаблоны скриптов продаж — это просто примеры, не переписывайте их один в один, а измените под себя. Не бывает универсального решения на все случаи жизни, ведь каждая компания и ее продукт уникальны.
Обратите внимание, в некоторых пунктах эти примеры скриптов идут вразрез с правилами построения беседы, о которых мы говорили в начале статьи.
Скрипт от сервиса «Скриптогенератор»: обход секретаря
— Добрый день! Это *Название компании*? Как к вам можно обращаться?
После приветствия пробуем узнать контакт ЛПР:
— *Имя секретаря*, меня зовут *Имя*, компания *Название вашей компании*. С кем я могу поговорить по вопросу *напишите ваш продукт/услугу*?
Секретарь может задать следующие вопросы. Разберем, как можно ответить.
— Что именно вы предлагаете?
— *Имя секретаря*, мы ничего пока не предлагаем, я звоню по вопросу *укажите ваш продукт*. Поэтому мне нужно поговорить с тем, кто за это отвечает. Соедините, пожалуйста!
— Вы с нами работаете?
— *Имя секретаря*, мы начинаем с вами работать. Переключите, пожалуйста, на *Имя ЛПР*.
— Не знаю, кто занимается этим вопросом.
— Обычно в компаниях этим вопросом занимается *должность ЛПР 1* или *должность ЛПР 2*. У вас в компании есть какие должности?
Какие могут быть возражения у секретаря:
1. Пришлите предложение на почту.
— Мы не делаем веерную рассылку. (пауза) У нас серьезная компания, с именем и репутацией. Чтобы предложить вам *наш товар/услуга*, я должен сначала переговорить с вашим руководителем.
— Хорошо, *Имя секретаря*! Продиктуйте, пожалуйста, адрес электронной почты. (записываем) Скажите, на чье имя выслать? (записываем) Скажите, как правильно называется его должность? (Записываем).
2. Не могу соединить/запрещено соединять.
— Хорошо, мы напишем ему официальное письмо. Назовите, пожалуйста, его полные фамилию, имя, отчество и адрес электронной почты. (записываем)
По какому телефону ему можно перезвонить, чтобы мы могли узнать, получил ли он письмо? (записываем)
— *Имя секретаря*, я вас прекрасно понимаю, поскольку сам завишу от решения руководителя. Но разговор займет буквально пару минут. Соедините, пожалуйста!
Скрипт маркетингового агентства In-scale
При приветствии обязательно называется имя, это свидетельствует о подготовленности.
– Компания «Рога и копыта». Если нет, то: – Компания такого-то профиля «Рога и копыта». Не спрашиваем, удобно ли говорить, чтобы не провоцировать отказ.
– *Имя клиента*, вы работаете в такой-то сфере, а мы как раз занимаемся обслуживанием этой сферы. Потому и звоним вам, чтобы…
–*Имя клиента*, мы работаем в такой-то сфере и хотели бы работать с вами. Что нам для этого нужно сделать?
– *Имя клиента*, скажите, чтобы не настаивать зря на встрече и не тратить ваше время, делаете ли вы то-то и то-то (называются условия, которые вам необходимы для сотрудничества с компанией).
–*Имя клиента*, исходя из ваших ответов, для вас идеально подойдет наш продукт. Чтобы не настаивать сразу на встрече и сэкономить ваше время, предлагаю поступить так: я отправлю вам предложение на почту, а завтра после обеда перезвоню и уточню решение. Заинтересует — поработаем, нет — в другой раз. Записываю почту.
Согласие с претензией:
– Да, у нас есть такие-то минусы (например, высокая цена).
– Нас выбирают те, кто (например, готов заплатить один раз, но за качественную работу).
– Кстати, вы уже определили примерные объемы на месяц (или аналогичное, в зависимости от ситуации)?
Скрипт кол-центра Seurus
Этап | Действия |
Приветствие | – Добрый день, компания такая-то, зовут так-то. Как я могу к вам обращаться? |
Клиент дает свое имя, убеждаемся, что это именно то лицо, принимающее решения, которое нам нужно.
– Вы пользуетесь тем-то и тем-то?
– Если вы пользуетесь этим, то у вас возникает такая-то потребность (например, в восполнении товара или в обслуживании).
1) Акции (только ближайшие пару дней на наши услуги будет действовать скидка 50%).
2) Ссылка на слова клиента (ранее вы говорили, что у вас есть такая-то потребность, верно?).
– Нас все устраивает.
– Все познается в сравнении.
– Наши менеджеры и так работают хорошо.
– Прекрасно, так пусть они работают с теми клиентами, которых мы приведем.
Скрипт бизнес-школы BusinessTG
Этап | Действия |
Приветствие | Сначала нужно поинтересоваться у человека, как он хочет, чтобы его называли, и потом именно таким образом к нему обращаться. |
– Добрый день. Как я могу к вам обращаться?
Далее нужно сделать связку:
– Такой-то человек воспользовался нашими услугами и предложил связаться с вами.
– Мне сообщили, что вы занимаетесь тем-то и тем-то. Возможно, вас заинтересует предлагаемое нами преимущество.
Далее нужно спросить разрешение на общение:
– Вам удобно сейчас говорить?
– Что ваши сотрудники делают для достижения поставленных целей?
– Как вы решаете такую-то задачу?
– Как можно еще больше увеличить поток клиентов, если улучшить их обслуживание?
– Хотите ли вы получить такие преимущества, воспользовавшись нашими товаром/услугой?
– Благодарю за уделенное время. Будьте добры, оставьте мне ваши контакты, чтобы мы могли отправить вам дополнительную информацию.
При заинтересованности уточнить, в какой день можно позвонить или даже подъехать для обсуждения информации.
Интеграция скриптов в CRM
Посмотрим, как это работает, на примере S2 CRM. В программе можно через настройки прописать пошаговые скрипты для каждого этапа работы с клиентом. Благодаря этому в каждой карточке сделки менеджер будет видеть подробное руководство: что нужно сказать и что сделать для успешного перевода сделки на следующий этап. Скрипты отображаются в CRM в виде удобного чек-листа, с которым менеджер может работать прямо во время переговоров с клиентом:
Интерфейс программы S2 CRM: изображена карточка сделки с чек-листом для менеджера.
Автор: Дарья Милакова
Пользуйтесь S2 CRM семь дней бесплатно
За это время вы поймете, подойдет ли CRM для вашей компании: как работает IP‑телефония, e-mail и sms-рассылки, удобно ли ей пользоватся сотрудникам.
Оцените статью по пятибалльной шкале
Средняя оценка 3.7 / 5. Количество оценок: 30