Друзья, нужна ваша помощь 🙏
Поучаствуйте, пожалуйста в анонимном опросе в нашем чате
Это займет 5 секунд, а нам очень поможет.
t.me/google_spreadsheets_chat/448741
Поучаствуйте, пожалуйста в анонимном опросе в нашем чате
Это займет 5 секунд, а нам очень поможет.
t.me/google_spreadsheets_chat/448741
Telegram
Eugeny Namokonov in Чат | Таблицы и GAS-скрипты
Ребят, кто в РФ, у вас открывается ссылка LOOM?
да / нет / да, квн / нет, квн
да / нет / да, квн / нет, квн
❤2👍1🍓1
Google Таблицы
Интервью! Интервью! Интервью! ⚡️ Если не грузится видео из TG, ссылка на vkvideo 🚛 Telegram, MAX, бензин и водители. Что между ними общего? Таймкоды: 00:00:00 О компании 00:02:34 Направления нашей работы 00:08:30 Обзор Telegram-бота 00:29:49 Создаём…
Продолжаем сериал о переводе компании со 100+ машин из Telegram в MAX.
Наша система развивалась несколько лет. На одной таблице завязаны десятки других листов и скриптов, поэтому просто добавить два новых столбца (chatId и userId для MAX) было нельзя.
Мы сохранили chatId и userId... в примечаниях ячеек. (см. второй скрин)
Теперь, когда водитель пишет боту в MAX о проблеме, бот получает его ID, находит по примечания его строку и извлекает из неё всю необходимую информацию и про водителя и про чатике поддержки.
В результате механики мгновенно получают сообщение:
Нюанс. Читать Google Таблицу при каждом обращении бота - медленно.
Поэтому решение такое:отдельный Apps Script срабатывает при любом изменении этого листа, собирает все данные в удобный объект и сохраняет его в Script Properties.
Дальше бот работает уже с этим объектом. Получается значительно быстрее, чем каждый раз обращаться к таблице.
Возможностей Google Таблиц много и они разные :)
PS Если у вас уже есть бот в Telegram и вы планируете переезд в MAX - пишите @namokonov
PPS А еще на курс с Анжелой про ДДС постепенно набирается, не пропустите: t.me/google_sheets/2192
Наша система развивалась несколько лет. На одной таблице завязаны десятки других листов и скриптов, поэтому просто добавить два новых столбца (chatId и userId для MAX) было нельзя.
Мы сохранили chatId и userId... в примечаниях ячеек. (см. второй скрин)
Теперь, когда водитель пишет боту в MAX о проблеме, бот получает его ID, находит по примечания его строку и извлекает из неё всю необходимую информацию и про водителя и про чатике поддержки.
В результате механики мгновенно получают сообщение:
Нужна срочная помощь. Тону в бокале мартини 🍸
Нюанс. Читать Google Таблицу при каждом обращении бота - медленно.
Поэтому решение такое:
Дальше бот работает уже с этим объектом. Получается значительно быстрее, чем каждый раз обращаться к таблице.
Возможностей Google Таблиц много и они разные :)
PS Если у вас уже есть бот в Telegram и вы планируете переезд в MAX - пишите @namokonov
PPS А еще на курс с Анжелой про ДДС постепенно набирается, не пропустите: t.me/google_sheets/2192
❤5👍5🔥2
🚛 Еще один бот переехал из Telegram в MAX без переписывания всей системы.
Помните наш сериал про перевод компании с Telegram на MAX? Сегодня вышла очередная серия.
Перевели бота, в котором водители отмечают статусы рейса: приехал, загрузился, выехал, выгрузился и т.д.
Дальше всё группируется и автоматически разлетается в чаты логистов (в MAX, но можно однвременно и в Telegram) и записывается в Google Таблицу.
В итоге логисты всегда знают, в каком статусе находится машина, а бухгалтерия без лишней ручной работы понимает кому сколько заплатить. 🚛📊
Такими маленькими шагами Telegram постепенно меняется на MAX - без боли и без переписывания всей системы с нуля.
Создание ботов в Telegram / MAX: @namokonov
Помните наш сериал про перевод компании с Telegram на MAX? Сегодня вышла очередная серия.
Перевели бота, в котором водители отмечают статусы рейса: приехал, загрузился, выехал, выгрузился и т.д.
Дальше всё группируется и автоматически разлетается в чаты логистов (в MAX, но можно однвременно и в Telegram) и записывается в Google Таблицу.
В итоге логисты всегда знают, в каком статусе находится машина, а бухгалтерия без лишней ручной работы понимает кому сколько заплатить. 🚛📊
Такими маленькими шагами Telegram постепенно меняется на MAX - без боли и без переписывания всей системы с нуля.
Создание ботов в Telegram / MAX: @namokonov
👍3❤1
Каналу @google_sheets почти 10 лет.
За это время мы сделали сотни проектов: Telegram и MAX-боты, сложные скрипты, CRM и ERP-системы, интеграции и автоматизацию бизнеса на базе Google Таблиц и других сервисов.
Обсудить проект: @namokonov
За это время мы сделали сотни проектов: Telegram и MAX-боты, сложные скрипты, CRM и ERP-системы, интеграции и автоматизацию бизнеса на базе Google Таблиц и других сервисов.
Обсудить проект: @namokonov
🔥11❤2
Лучшее доказательство пользы курса - показать первый урок.
Это про Таблицу со скриптом с парсингом выписок.
А еще будет мощный инструмент от Анжелы, теория и нетвокиркинг.
Что еще будет внутри курса: t.me/google_sheets/2192
Чтобы присоединиться, напишите "ДДС" @namokonov
Это про Таблицу со скриптом с парсингом выписок.
А еще будет мощный инструмент от Анжелы, теория и нетвокиркинг.
Что еще будет внутри курса: t.me/google_sheets/2192
Чтобы присоединиться, напишите "ДДС" @namokonov
❤4👍4🔥3
🧩 Загадка для подписчиков
Друзья, а вот наконец и возвращаемся к формулам!
Нужно привести валюты из столбцов A-D к долларам по курсу на дату, указанную в B1, а затем прибавить доллары из столбца E. Результат - в F.
Можно использовать
Условие: если курса на выбранную дату нет, нужно взять ближайший предыдущий доступный курс.
Пишите свои варианты в комментариях. Чуть позже покажем наше решение 🙂
Таблица
Друзья, а вот наконец и возвращаемся к формулам!
Нужно привести валюты из столбцов A-D к долларам по курсу на дату, указанную в B1, а затем прибавить доллары из столбца E. Результат - в F.
Можно использовать
GOOGLEFINANCE, но необязательно.Условие: если курса на выбранную дату нет, нужно взять ближайший предыдущий доступный курс.
Пишите свои варианты в комментариях. Чуть позже покажем наше решение 🙂
Таблица
👍6❤3🍓1
Google Таблицы
🧩 Загадка для подписчиков Друзья, а вот наконец и возвращаемся к формулам! Нужно привести валюты из столбцов A-D к долларам по курсу на дату, указанную в B1, а затем прибавить доллары из столбца E. Результат - в F. Можно использовать GOOGLEFINANCE, но необязательно.…
Привет! Решение будет из двух частей.
Сначала получим курсы валют на выбранную дату. Но есть нюанс: если эта дата выпадает на выходной или праздничный день, данных может не быть. Поэтому запрашиваем курсы за последние 7 дней и берём последний доступный.
Что происходит в формуле:
•
•
•
•
•
•
Формула целиком:
Сначала получим курсы валют на выбранную дату. Но есть нюанс: если эта дата выпадает на выходной или праздничный день, данных может не быть. Поэтому запрашиваем курсы за последние 7 дней и берём последний доступный.
Что происходит в формуле:
•
MAP(A2:E2;...) - по очереди обрабатывает каждую валюту.•
curr - текущая валюта из ячейки•
IF(curr="USD";1;...) - для доллара возвращаем курс 1.•
LET(data;...) - сохраненяем полученную таблицу по каждой паре под именем data.•
INDEX(data;ROWS(data);2) - берём последнее значение курса из второго столбца.•
Значение B1+1 в параметре enddate нужно, чтобы GOOGLEFINANCE включила в выборку курс за дату B1.Формула целиком:
=MAP(A2:E2;LAMBDA(curr;
IF(curr="USD";1;
LET(
data;GOOGLEFINANCE(
"CURRENCY:"&curr&"USD";
"price";
$B$1-6;
$B$1+1
);
INDEX(data;ROWS(data);2)
)
)
))
👍5❤2
Google Таблицы
🧩 Загадка для подписчиков Друзья, а вот наконец и возвращаемся к формулам! Нужно привести валюты из столбцов A-D к долларам по курсу на дату, указанную в B1, а затем прибавить доллары из столбца E. Результат - в F. Можно использовать GOOGLEFINANCE, но необязательно.…
Вторая часть: пересчёт в доллары.
Теперь посчитаем значения в каждой строке в долларах.
В итоге получаем общую сумму в долларах для каждой строки.
Конечно, обе части можно объединить в одну формулу. 😊
Таблица с решением
Теперь посчитаем значения в каждой строке в долларах.
BYROW по очереди обрабатывает каждую строку, а SUMPRODUCT умножает суммы в каждой валюте на соответствующие курсы и складывает результаты.В итоге получаем общую сумму в долларах для каждой строки.
Конечно, обе части можно объединить в одну формулу. 😊
=BYROW(
A3:E;
LAMBDA(
row;
IF(
COUNTA(row)=0;;
SUMPRODUCT(row;$H$3:$L$3)
)
)
)
Таблица с решением
👍3❤1🍓1
🚀 Перенесли очередного Telegram-бота в MAX
Для одной компании мы перенесли ранее разработанного бота из Telegram в MAX, сохранив его логику и функциональность.
Теперь бот:
✅ принимает заявки на обслуживание
✅ позволяет прикреплять фото и видео
✅ автоматически формирует PDF по шаблону
✅ отправляет документы на нужные адреса поддержки
✅ сохраняет данные в таблицу
Сотрудник отправляет заявку один раз. Дальше бот сам формирует документ, направляет его ответственным и сохраняет историю обращения.
Меньше ручной работы. Быстрее обработка. Полный контроль по каждой заявке.
Нужен такой бот (Telegram / MAX) для вашей компании?
Напишите @namokonov
Для одной компании мы перенесли ранее разработанного бота из Telegram в MAX, сохранив его логику и функциональность.
Теперь бот:
✅ принимает заявки на обслуживание
✅ позволяет прикреплять фото и видео
✅ автоматически формирует PDF по шаблону
✅ отправляет документы на нужные адреса поддержки
✅ сохраняет данные в таблицу
Сотрудник отправляет заявку один раз. Дальше бот сам формирует документ, направляет его ответственным и сохраняет историю обращения.
Меньше ручной работы. Быстрее обработка. Полный контроль по каждой заявке.
Нужен такой бот (Telegram / MAX) для вашей компании?
Напишите @namokonov
❤3👍2🔥2🍓1
Привет, друзья!
Завтра выложим Таблицу с GAS-скриптом, с помощью которой можно автоматически заполнять Google Документы из Таблицы.
Без дополнительных приложений, авторизаций в МАХ и СМС :)
А еще расскажем, как в шаблон документа можно заранее вставить печать.
Завтра дадим вам готовый инструмент 🚀
Завтра выложим Таблицу с GAS-скриптом, с помощью которой можно автоматически заполнять Google Документы из Таблицы.
Без дополнительных приложений, авторизаций в МАХ и СМС :)
А еще расскажем, как в шаблон документа можно заранее вставить печать.
Завтра дадим вам готовый инструмент 🚀
🔥37👍3❤1
Создаем инвойсы (и вообще любые документы) из Таблицы без дополнительных приложений
Друзья, привет!
Показываю вариант автоматизации, который работает на Google Таблице + Google Apps Script + вашем шаблоне Google Документа.
На выходе скрипт автоматически создаёт:
📄 Google Документ
📑 PDF
📁 и сохраняет оба файла в указанную папку на Google Диске
Расскажу как все работает:
1. Берём Таблицу со скриптом и копируем себе.
На листе Create есть несколько основных настроек:
^ B2 - ссылка на папку Google Диска, куда сохранять готовые документы (вам её нужно заполнить)
^ B3 - ссылка на шаблон Google Документа
^ B4 - формула, которая формирует имя будущего файла
^ B1, С1 - здесь после запуска скрипта вы увидите ссылки на созданные документы
Например, у меня имя файла собирается из номера контракта и номера инвойса. Но здесь (и в любых ячейках, которые используются) можно использовать любую свою формулу.
2. Заполняем данные для шаблона
Начиная с 5-й строки, в первом столбце указываем переменные:
и т.д.
Во втором столбце находятся значения этих переменных.
Например:
<SELLER> → ООО "Технология Процессинг"
Скрипт находит <SELLER> в шаблоне Google Документа и заменяет его на значение из Таблицы.
При этом сохраняется форматирование, заданное в шаблоне Google Документа.
То есть вы можете самостоятельно добавить сколько угодно переменных вида <***> под свой документ.
3. Запускаем скрипт из меню "💼 Скрипты"
И получаем готовый Google Документ и PDF в нужной папке.
А ещё я добавил формулы (B21, B22), которые автоматически переводят сумму прописью на русском и английском языках.
Таким способом можно автоматизировать не только инвойсы, но и акты, договоры, коммерческие предложения, счета и любые другие документы, для которых вы создадите шаблон в Google Документе.
PS. Чтобы добавить печать с подписью, как в нашем шаблоне, сохраните печать и подпись на прозрачном фоне, вставьте их в шаблон в Google Документе и выберите положение "За текстом".
Таблица со скриптом
Пример шаблона
Друзья, привет!
Показываю вариант автоматизации, который работает на Google Таблице + Google Apps Script + вашем шаблоне Google Документа.
На выходе скрипт автоматически создаёт:
📄 Google Документ
📁 и сохраняет оба файла в указанную папку на Google Диске
Расскажу как все работает:
1. Берём Таблицу со скриптом и копируем себе.
На листе Create есть несколько основных настроек:
^ B2 - ссылка на папку Google Диска, куда сохранять готовые документы (вам её нужно заполнить)
^ B3 - ссылка на шаблон Google Документа
^ B4 - формула, которая формирует имя будущего файла
^ B1, С1 - здесь после запуска скрипта вы увидите ссылки на созданные документы
Например, у меня имя файла собирается из номера контракта и номера инвойса. Но здесь (и в любых ячейках, которые используются) можно использовать любую свою формулу.
2. Заполняем данные для шаблона
Начиная с 5-й строки, в первом столбце указываем переменные:
<SELLER>
<PAYER>
<LOT>
<CONTRACT>
<INVOICE NUMBER>
и т.д.
Во втором столбце находятся значения этих переменных.
Например:
<SELLER> → ООО "Технология Процессинг"
Скрипт находит <SELLER> в шаблоне Google Документа и заменяет его на значение из Таблицы.
При этом сохраняется форматирование, заданное в шаблоне Google Документа.
То есть вы можете самостоятельно добавить сколько угодно переменных вида <***> под свой документ.
3. Запускаем скрипт из меню "💼 Скрипты"
И получаем готовый Google Документ и PDF в нужной папке.
А ещё я добавил формулы (B21, B22), которые автоматически переводят сумму прописью на русском и английском языках.
Таким способом можно автоматизировать не только инвойсы, но и акты, договоры, коммерческие предложения, счета и любые другие документы, для которых вы создадите шаблон в Google Документе.
PS. Чтобы добавить печать с подписью, как в нашем шаблоне, сохраните печать и подпись на прозрачном фоне, вставьте их в шаблон в Google Документе и выберите положение "За текстом".
Таблица со скриптом
Пример шаблона
🔥16👍3
Выгружаем из Google Календаря всё
Привет, друзья!
Сегодня можно заниматься только делами с календарём, переворачивать мы не будем, но дадим вам полезную Таблицу.
Если вы хотите быстро выгрузить свои встречи и события за выбранный период, чтобы построить отчеты, контролировать дедлайны, что-нибудь еще на корпоративном, то Таблица будет вам полезна.
Она умеет:
^ выгружать список всех ваших календарей;
^ собирать все события из них за выбранный период - с датами, участниками, статусами и другими параметрами - на один лист "События".
Просто укажите даты на листе "Настройки" и нажмите "Обновить всё" - Таблица сама всё соберёт.
🔗 Открыть Таблицу и скопировать себе
Привет, друзья!
Сегодня можно заниматься только делами с календарём, переворачивать мы не будем, но дадим вам полезную Таблицу.
Если вы хотите быстро выгрузить свои встречи и события за выбранный период, чтобы построить отчеты, контролировать дедлайны, что-нибудь еще на корпоративном, то Таблица будет вам полезна.
Она умеет:
^ выгружать список всех ваших календарей;
^ собирать все события из них за выбранный период - с датами, участниками, статусами и другими параметрами - на один лист "События".
Просто укажите даты на листе "Настройки" и нажмите "Обновить всё" - Таблица сама всё соберёт.
🔗 Открыть Таблицу и скопировать себе
❤10🔥4🍓1
API, IP, что это вообще? :) Может лучше начинать писать про пиво IPA?
Возвращаемся к теме доступа к API. Часто бывает так: у стороннего API доступ разрешён только с адресов из заранее верифицированного белого списка (whitelist).
А Google Apps Script (GAS) такой стабильный адрес дать не может - при каждом обращении к внешнему серверу запрос уходит со случайного IP из пула Google.
Незадача: сервис требует фиксированный IP, а инструмент, которым мы хотим им пользоваться, фиксированного IP не имеет.
Означает ли это, что ничего не получится, что из GAS к такому API вообще нельзя достучаться? Нет, можно - просто напрямую не получится, добавим посредника.
Идея решения:
1) Арендуем VPS-сервер;
2) Обязательно берём выделенный IP-адрес - важно, чтобы он не менялся;
3) Этот IP заранее добавляем в whitelist на стороне API;
4) Из GAS отправляем запрос на свой VPS - передаём туда логин/пароль или токен для авторизации и endpoint, к которому мы обращаемся;
5) VPS уже от своего (разрешённого) адреса обращается к API, получает данные и отправляет их обратно - в нашу Google Таблицу;
Получается простая цепочка:
GAS → VPS (фиксированный IP) → API → обратно в Таблицу
Спасибо Дмитрию Петровичу за интересную идею поста, которую он нам подкинул, у него скоро праздник, поздравим :)
Возвращаемся к теме доступа к API. Часто бывает так: у стороннего API доступ разрешён только с адресов из заранее верифицированного белого списка (whitelist).
А Google Apps Script (GAS) такой стабильный адрес дать не может - при каждом обращении к внешнему серверу запрос уходит со случайного IP из пула Google.
Незадача: сервис требует фиксированный IP, а инструмент, которым мы хотим им пользоваться, фиксированного IP не имеет.
Означает ли это, что ничего не получится, что из GAS к такому API вообще нельзя достучаться? Нет, можно - просто напрямую не получится, добавим посредника.
Идея решения:
1) Арендуем VPS-сервер;
2) Обязательно берём выделенный IP-адрес - важно, чтобы он не менялся;
3) Этот IP заранее добавляем в whitelist на стороне API;
4) Из GAS отправляем запрос на свой VPS - передаём туда логин/пароль или токен для авторизации и endpoint, к которому мы обращаемся;
5) VPS уже от своего (разрешённого) адреса обращается к API, получает данные и отправляет их обратно - в нашу Google Таблицу;
Получается простая цепочка:
GAS → VPS (фиксированный IP) → API → обратно в Таблицу
Если вам интересно, как настроить такой VPS для этой задачи - ставьте реакции, пишите в комментариях, в следующем посте покажем пошагово, что написать в консоли.
Спасибо Дмитрию Петровичу за интересную идею поста, которую он нам подкинул, у него скоро праздник, поздравим :)
👍15❤6🍓3🔥2