ГрамотаДел ГрамотаДел Express В чём разница?

Автоматический импорт из Google Таблиц

Настройте автоматическое создание файлов при изменении Google Таблицы. Данные будут отправляться в ГрамотаДел для создания файлов. При необходимости, статус отправки и ссылка на готовый файл может быть возвращена в таблицу Google.


С чего начать?

Вам нужно 1) создать или загрузить шаблон, 2) создать документ, заполнить его. В том месте, где будут данные подставляться из формы поставьте строку для замены, например %фио или %баллы. Если вы хотите дополнительно отправлять письмо на email 3) напишите текст письма (в шаблонах писем).

В конечном итоге у вас должны быть:

  1. Документ, хотя бы с одной переменной для замены
  2. Шаблон письма, если вы хотите отправлять файл на электронную почту

Google Таблица

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

Google Таблица с данными для автоматического импорта в ГрамотаДел

Выше приведён пример Google Таблицы, в которую сохранены данные из Google Форм. Количество строк и колонок может быть любым.


Документ в ГрамотаДеле

Создайте документ в ГрамотаДеле. В тех местах, где требуется вставка персональных данных из таблицы, поставьте переменные, например %фио. Подробнее о создании документа и вставке переменных смотрите в нашем пошаговом руководстве.

Как только всё готово - выбираем "Файл" - "Автоматический импорт из Google Таблицы".

Открытый документ с переменной %фио и меню "Файл" - "Автоматический импорт".

Далее в появившемся модальном окне необходимо очень внимательно сделать настройки импорта данных.

Окно настроек автоматического импорта из Google Таблиц

  • Cсылка на Google Таблицу Ссылку полностью. Делать "Доступ по ссылке" не нужно.
  • Переменные Укажите, в какой колонке Google Таблицы находятся переменные из документа. Если включить переключатель "Обязательно", то создание файла не начнётся, пока соответствующая ячейка не будет заполнена. Рекомендуется включать для всех ячеек, без которых создание файла не имеет смысла, например, без ФИО или адреса электронной почты.
  • Возвращать статус В указанной колонке таблицы будет выводиться статус отправки файла. Обязательно должна быть пустой и не пересекаться с данными. Возможнные статусы - "Создан", "Отправлен", "Доставлен", "Ошибка".
  • Возвращать ссылку В указанной колонке таблицы будет вставляться ссылка на готовый файл. Колонка обязательно должна быть пустой и не пересекаться с данными.
  • Игнорировать ли первую строку Поставьте чекбокс, если в таблице есть заголовок (например, при использовании формы, как в примере на скриншоте выше).

Кроме того нужно настроить параметры создания файлов.

Окно настроек автоматического импорта из Google Таблиц

  • Папка в Диске Где будут созданы файлы. Например - название мероприятия.
  • Шаблон письма Для рассылки. Шаблоны письем находятся в "Письма" - "Шаблоны".
  • Лейбл проверки подлинности Добавлять ли лейбл проверки подлинности. Подробнее в документации.
  • Отправить на Яндекс.Диск Автоматическое сохранение файлов в вашем Яндекс.Диске.

Apps Script в Google Таблице

Последний этап настройки - добавление скрипта экспорта и триггера в Google Таблице. Для этого нужно вернуться в Google Таблицу, из которой будем делать импорт. Затем, выбрать "Инструменты" - "Редактор скриптов".

Окно Google Таблицы - меню "Инструменты" - "Редактор скриптов"

В появившемся окне вставляем следующий код:

function exportJSON() { var sheet = SpreadsheetApp.getActiveSheet(); var sheet_id = SpreadsheetApp.getActiveSpreadsheet().getUrl(); var rows = sheet.getDataRange(); var numRows = rows.getNumRows(); var numCols = rows.getNumColumns(); var values = rows.getValues(); var output = "["; for (var i = 0; i < numRows; i++) { if (i > 0) output += ","; var row = values[i]; output += "{\"0\":\"true\""; for (var a = 0;a<numCols;a++){ output += ",\""+(a+1)+"\":\""+row[a].toString().replace(/\"+/g,"&quot;")+"\""; } output += "}"; } output += "]"; var result = UrlFetchApp.fetch('https://gramotadel.express/api/v1/googlesheets-create/', {"method" : "POST", "payload" : {"sheet_id" : sheet_id, "data" : output}, "muteHttpExceptions": true}); if (result.getResponseCode() == 200) { var json = result.getContentText(); if (json) { data = JSON.parse(json); Object.keys(data).forEach(key => { sheet.getRange(key).setValue(data[key]); }); } } }

Что это за код? Этот код получает все данные только текущей таблицы (куда он вставлен) и отправляет их в формате JSON в ГрамотаДел Express. После ответа в нужные ячейки он вставляет ссылки на готовые файлы. Скрипт не имеет доступа к другим документам или к Google Диску.

Вставьте этот код в редактор скрипта (заменив то, что там есть). Назовите ваш скрипт как желаете, например ГрамотаДел Express.

Окно редактора Google Apps Script

Нажмите "Сохранить проект" на панели инструметов и затем, после сохранения, "Выполнить".

Окно редактора Google Apps Script - кнопка "Выполнить"

Появится окно проверки разрешений.

Модальное окно проверки разрешений

После выбора аккаунта появтся предупреждение от Google что этот скрипт не проверен.

Предупреждение, что сприпт не проверен

Это окно безопасности предупреждает вас о том, что специалисты Google не проверяли скрипт, который вы вставили. Тем не менее, вы можете быть уверены, что ваши данные надёжно сохранены. Скрипт, который вы используете получает данные только текущей таблицы и отправляет их в ГрамотаДел Express для создания файлов. Он не имеет доступ к другим таблицам или файлам на вашем Google Диске. Мы заботимся о сохранности ваших данных и конфиденциальности.

Выбираем "Дополнительные настройки" и "Перейти на страницу ГрамотаДел Express".

Предупреждение, что сприпт не проверен

Последует окно получения разрешений.

Окно получения разрешений

После получения разрешений опять откроется окно Apps Script и нужно нажать "Выполнить" ещё раз.

Окно редактора Google Apps Script - кнопка "Выполнить"

Затем открываем вкладку с Google Таблицей. Если всё сделано верно, то файлы будут созданы и отправлены на электронную почту. В таблице появятся статус создания и отправки, и ссылка на готовый файл (если были указаны соответствующие колонки).

Google Таблица с результатом импорта в ГрамотаДел

Если файл не был создан, то необходимо проверить все настройки в документе ГрамотаДела и попробовать в Apps Script выполнить функцию ещё раз. Убедитесь, что вы верно указали ссылку на Google Таблицу, что указаны переменные и выбраны колонки с данными, и так далее.


Добавление Триггеров в Apps Script

Последнее, что нужно сделать - добавить триггеры в Apps Script. Для этого вернитесь на вкладку Apps Script (или заново откройте "Инструменты" - "Редактор скриптов") Затем нужно перейти на страницу "Триггеры" и нажать "Добавление триггера".

Окно Триггеров в Apps Script - добавление триггера

Все параметры можете оставить как есть. В поле "Выберите тип события" нужно указать нужно событие.

  • Если вы вручную вносите данные в таблицу - то "При изменении".
  • Если используете формы - то "При отправке формы".

При добавлении этого триггера появится окно предоставления разрешений.

Окно добавления триггера в Apps Script

Пожалуйста, не используйте триггеры "При изменении" и "При отправке формы" одновременно. Можно добавить какой-либо один из них.

Кроме того, если вы хотите получать в таблице статус отправки файлов, то добавьте триггер по времени. Для этого в окне добавления триггера выберите "Источник мероприятия" - "Триггер по времени", а "Тип триггера" - "По часам". Промежуток - "Раз в час". Пожалуйста, не ставьте отправку чаще. Одного раза в час достаточно. В конечном итоге окно с триггерами может ввыглядеть так:

Окно Триггеров - "По времени" и "При отправке формы"

На этом всё. Осталось только проверить работу формы или вручную сделать изменения в полях Google Таблицы.

Вы восхитительны! Вы организовали автоматическое создание файлов из Google Таблицы!


Частые вопросы

Сколько времени создаётся файл? До пяти секунд. Ссылка на него появляется сразу в Google Таблице, как только триггер сработал. При переходе по ссылке будет отдан файл, а если его ещё нет - ошибка 404. Если произошло одновременное добавление сразу нескольких строк, то создание файлов будет происходить по-очереди. В таком случае файл будет создан за секунду + 10 секунд на завершение операции.

Почему файлы не создаются? Проверьте, что вы предоставили разрешения, что в ГрамотаДеле всё настроено верно. Если что то не получается, пишите нам.

Сколько стоит использование? Всё по одной стоимости - 50 копеек за каждый готовый файл + 50 копеек за письмо (если есть отправка по электронной почте). Не важно каким способом создаётся файл - вручную или автоматически.

Что будет, если в строках будут одинаковы данные? Файл не будет создан. Для каждой Таблицы Google + Документа ГрамотаДела + строки создаётся хэш. Если файл с таким хэшем уже создавался, то просто в таблицу будет отдана ссылка на него. Сам файл не будет пересоздан. Но, если удалить файл из "Готовых файлов", то файл будет создан заново.

Что означают статусы? Статусы, возвращаемые в таблицу означают следующее:
Создан - файл отправлен на генерацию и будет создан в течение ближайшего времени.
Отправлен - Письмо с файлом отправлено в почтовый сервис получателя.
Доставлен - Почтовый сервис получателя принял письмо и доставил его в почтовый ящик.
Открыт - Письмо было открыто, файл, скорее всего загружен.

Как быстро обновляется статус? Статус обновляется при каждом срабатывании триггера - т.е. при изменении или отправки формы + по времени - один раз в час.


Нужна помощь?

Напишите нам в техническую поддержку или через чат. Мы с радостью поможем вам!

Открыть