Форма, таблица и канбан без ручного переноса: тестируем MWS Tables

Мы все знакомы с болью огромного количества сервисов для организации рабочих процессов, и полуручного переноса данных из одного сервиса в другой. Кроме основной работы там вырастает дополнительная — проблемы рассинхронизации и дублирования данных. Очень сложно поддерживать единство данных в разных местах, и ошибки неизбежны.
Сегодня я проверю, можно ли с помощью MWS Tables полностью синхронизировать форму заявок, таблицу их хранения/контроля и таск-трекер в едином сервисе (спойлер: можно).
Чтобы провести эксперимент, я создал синтетический процесс обработки внутренних заявок сотрудников. Представим, что у нас есть компания N, где ее работники формируют заявки на закупку оборудования, доступ к сервису или помощь от административной команды.
Скажем, новому сотруднику нужен компьютер и сопутствующие девайсы (мышь, клавиатура, монитор и прочее).
Процесс в компании идет через три сервиса: гугл-формы, гугл-таблицу и таск-трекер.
Как же выглядит наш процесс? Сотрудник заполняет заявку в форме на семь вопросов. Чтобы организовать процесс, начал с гугл-формы на семь вопросов.

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

К таблице от импорта с гугл-формами добавил внутренние поля:
Приоритет
Статус
Ответственный
Оценочная стоимость
Дата выполнения
Внутренний комментарий
И название задачи (нужно было для импорта таблицы в трекер)

В самом трекере после импорта задачи распределены по статусам обработки:

Итак, наш процесс готов, и он вроде бы работает: заявки можно оформлять, контролировать и в принципе обеспечивать наших героев оборудованием. Но для его поддержки используется аж три сервиса сразу.
Чтобы провести элементарный импорт в трекер, пришлось создавать дополнительное поле, и это было сделано сразу с десятью заявками. Но если поступит новая заявка, придется вставлять ее вручную.
У нас нет общих сущностей, через которые можно управлять всем процессом: в таблицах отдельные строки, в трекере — самостоятельные карточки. Если мы меняем какой-то статус в трекере, таблица никак об этом не узнает.
Огромное количество лишней ручной работы, которое требует внимательного мониторинга и может создать много лишней путаницы, в которой нужно постоянно передавать и сверять сущности.
И мы сейчас это исправим одним-единственным сервисом.
Импорт в Tables
В первую очередь нам нужно провести импорт в Tables.
Для этого заходим в нашу основную гугл-таблицу, скачиваем ее в формате .xlsx
Сделать это можно во вкладке «Файл», через опцию «Скачать»:

В самом Tables создадим новое пространство и сделаем импорт (кнопка находится в левом верхнем углу интерфейса, под разделами «Проводник» и «Закрепить». Туда подгружаем нашу табличку из Google:

Но после импорта таблицу нужно настроить: данные в ней сейчас не более чем обычный текст, и нам нужно задать каждому столбцу определенный тип полей, чтобы система понимала, какую разновидность информации ей предстоит обрабатывать.
Для этого нажимаем на три точки в названии столбца и выбираем «Изменить параметры поля»:

По умолчанию везде будет стоять «Длинный текст», и нам нужно присвоить каждому столбцу такую конфигурацию:
Отметка времени — Дата и время
ФИО — Текст в одну строку
Отдел — Выбор*
Какое оборудование — Выбор
Желаемая модель — Длинный текст
Зачем требуется — Длинный текст
Когда — Дата
Доп. информация — Длинный текст
И во внутренних полях:
Приоритет — Выбор
Статус — Выбор
Ответственный — Выбор
Оценочная стоимость — Валюта
Дата выполнения — Дата
Внутренний комментарий — Длинный текст
Название задачи — Текст в одну строку
* В колонках «Выбор» данные подтянутся автоматически, потому что наша таблица уже изначально была настроена.
После этой несложной манипуляции таблица стала интерактивной и готовой к полноценной настройке.
Далее мы создадим новое представление — это отображение таблице в другом графическом виде. Для этого найдем над таблицей кнопку с плюсом «Новое представление» и выберем «Канбан-доску».

После этого необходимо нажать на «Структуру» и зайти в подменю «Сгруппировано». По умолчанию оно берет ближайшее удобное в таблице значение, но нам нужно назначать свое.

Группируем по «Статусу».
Перед нами появится канбан, похожий на то, что было в нашем таск-трекере:

Но нужно привести карточки в более читаемый вид: в той же «Структуре» выбираем «Стиль» и нажимаем на те поля, которые хотим отобразить в карточке. Должно получиться примерно так:

Проверим, как все работает: перетащим карточку Тони Старка из раздела «На рассмотрении» в «Согласовано» и проверим ее статус в основном представлении:

Статус изменился!
Наш таск-трекер, собранный за пару минут, полностью синхронизирован с таблицей заявок. Хотя в изначальной схеме нам пришлось бы двигать все статусы вручную сразу в двух сервисах. И даже если мы создадим еще несколько представлений (скажем, Диаграмму Ганта), она точно так же будет взаимосвязана со всеми другими представлениями. Для последнего штриха «Канбан» я переименовал в «Таск-трекер». Условно: если я перетаскиваю карточку Тони Старка в «Согласовано» — в табличном представлении вижу новый статус. Повторно менять его в другом сервисе не нужно.
Но теперь нужно сделать самое основное — форму заявки для сотрудников, с которой весь процесс и начинается.
Создаем форму
Добавляем еще одно представление — теперь в виде формы, на самое последнее в списке:

И тут возникла проблема — все столбцы заявок, включая технические, автоматически входят в форму.
Внутренний редактор, к сожалению, не позволяет удалить лишние поля, поэтому мы пойдем альтернативным способом — через настройку представления.
Удаляем старую форму, а после создаем новое представление в виде сетки и полностью копируем туда содержимое основной таблицы. У нас получится три представления.
Потом я узнал, что есть и другой способ: настроить правила заполнения формы, с помощью которых можно скрыть часть пунктов или заполнить одни пункты информацией, зависящей от заполнения других пунктов.

Дадим представлению какое-то новое имя, чтобы не потеряться (у меня — «Для формы»).
А теперь хитрость: в этом новом представлении мы зайдем в опцию «Структура», где нарисована иконка шестеренки. И там нас интересует раздел «Общие скрытые поля».

В нем скрываем все технические столбцы:
Приоритет
Статус
Ответственный
Оценочная стоимость
Дата выполнения
Внутренний комментарий
Название задачи
И они будут скрыты в этом конкретном представлении.
Мы создали урезанную, но полностью синхронизированную копию начальной таблицы.
Очень важно не спутать с обычным способом скрытия столбцов, который доступен левее в интерфейсе — в этом случае он нам не поможет.
Остается дело за малым: создать форму.
Снова жмем на «Добавить представление» и выбираем «Форму»:

При выборе таблицы, на основе которой сделается форма, выбираем нашу урезанную копию. Если взять основную таблицу, в форме появятся технические поля, чего мы и хотели избежать.
Когда форма готова, заполним ее, чтобы проверить как она отражается в наших представлениях:

Заявка отобразилась в урезанной и основной таблице (строка № 11):

И она же появилась в «Таск-трекере», без статуса, поскольку мы не заполняли внутренние поля.

Собственно, мы собрали полностью автоматическую систему в одном сервисе, вместо трех, как и хотели. Если внесем какие-то изменения в одно из представлений, оно отобразится во всех таблицах и таск-трекере.
Как понимаете, возможности Tables на этом не ограничиваются: у меня уже есть несколько обзоров — например, там, где я без строчки создавал полноценную CRM, чтобы привести в порядок 300 заявок.
А новые обзоры будут совсем скоро — не переключайтесь!
И помните главное: чем больше у вас разнородных сервисов, тем вам будет хотеться того же, что и внизу этого фрагмента таблицы:
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.