Nextbot
  • Начало
    • Что такое Nextbot?
    • Сценарии использования
      • Ремонт компьютеров
      • Продажа диванов
    • Как начать?
      • Регистрация
      • Создание агента
      • Наполнение базы знаний
      • Добавление функций
      • Публикация ИИ-агента и получение заявок
  • Функционал
    • Аккаунт
      • Безопасность
    • Диалоги
    • Агенты
    • Настройка Агента
      • Системный промпт
      • Стартовое сообщение
      • Температура
      • Оптимизация истории диалога
      • Управление активностью агента
      • Буфер сообщений
      • Форматирование текста. Markdown
      • Дата и время
      • Защита от спама на агента
      • Защита от спама на пользователя
      • Расписание работы ИИ-агента
      • Работа с файлами
        • Голосовые сообщения
        • Изображения
        • Прочие файлы
      • Отложенная отправка
      • Свой ключ OpenAI
    • Чат
    • Источники знаний
      • База знаний
      • Документы
      • OpenAI документы
      • OpenAI веб-поиск
      • Таблицы
        • Создание таблицы вручную
        • Создание таблицы из файла
        • Поиск в таблице
    • Функции
      • Активация функций
      • Название и описание
      • Параметры функций
      • Реакция на выполнение
      • Сценарий поведения после выполнения функции
      • Отправка результатов
        • amoCRM
        • Bitrix24
        • Telegram
        • U-ON.Travel
        • Custom API
        • Python
          • Использование REST API
          • Подключение и работа с Google Таблицам
        • Google Calendar
      • Отключить отложенные сообщения
      • Отправка отложенного сообщения
    • Дообучение
      • Как обучить свою модель?
    • Каналы
      • Telegram
        • Инструкция подключения бота к Nextbot
        • Инструкция подключения бота к группе
        • Инструкция подключения бота к личному аккаунту
        • Инструкция получения заявок в Telegram бота
        • Инструкция получения заявок в Telegram чат/группу
      • Вконтакте
      • WhatsApp
      • Авито
      • АвитоPro
        • Подключение аккаунта
        • Управление объявлениями
        • Сценарии поведения ИИ
      • Instagram*
        • Инструкция по подключению Instagram* к Nextbot
    • Интеграции
      • Notion
        • Подключение
        • Импортирование таблицы
        • Создание таблицы
        • Настройка прав
        • Дополнительная инструкция
        • Примеры
          • Ремонт телефонов
          • Магазин цветов
        • Лимит записей
        • Частые ошибки
      • Bitrix24
        • Подключение
          • Nextbot как канал
          • Nextbot как чатбот
        • Пример использования
        • Отправка шаблонных сообщений в WhatsApp из Bitrix24
      • amoCRM
        • Подключение
      • U-ON
      • Google Календарь
        • Создать событие
        • Получить события
        • Удалить событие
        • Получить доступное время
        • Шаблоны функции для работы с Google Calendar
      • ElevenLabs
      • Google Таблицы
    • Чат на сайт
    • Аналитика
  • Цены
    • Ценообразование
      • Расходы на LLM
      • Малый бизнес
    • Тарифы
  • Советы
    • Продвинутые техники
      • Мультиагентность
  • Вопрос - ответ
    • Часто задаваемые вопросы
Powered by GitBook
On this page
  • Подготовка для работы с Google Таблицами
  • Примеры работы с Google Таблицами
  • Пример 1. Запись в Google Таблицу
  • Пример 2. Чтение из таблицы
  1. Функционал
  2. Функции
  3. Отправка результатов
  4. Python

Подключение и работа с Google Таблицам

PreviousИспользование REST APINextGoogle Calendar

Last updated 1 month ago

Подготовка для работы с Google Таблицами

Для работы с Google Таблицами необходимо выполнить подготовительные шаги:

Подготовка Google аккаунта и получение ключа для интеграции
  1. Зайти на

  2. В верхнем меню выберите или создайте новый проект

  3. Нажмите на меню

  4. перейдите в APIs & Services -> Enabled APIs & services

  5. Enable APIs and services

  6. Найдите Google Drive API

  7. Нажмите Enable

  8. Вернитесь назад

  9. Найдите Google Sheets API

  10. Нажмите Enable

  11. Далее надо создать сервисный аккаунт если его нет меню->IAM & Admin -> Service Accounts

  12. Нажмите 'Create service account'

  13. Впишите любое имя на английском и нажмите Done

  14. Скопируйте имя в буфер обмена полное имя оно понадобится далее

  15. Зайдите в созданный аккаунт.

  16. Перейдите на вкладку Keys и нажмите Add Key->Create New Key

  17. Выберите JSON и нажмите Create

  18. Скачается JSON файл.

Подготовка Google Таблицы
  1. Зайдите

  2. Найдите имя вашего сервисного аккаунта

  3. Создайте гугл таблицу и дайте ей осмысленное название

  4. Зайдите в настройки доступа

  5. Вставьте ПОЛНОЕ имя сервисного аккаунта и выберите роль Редактор и нажмите открыть доступ.

После выполнения подготовки у вас должен быть JSON-файл с ключом и Google Таблица, в которую добавлен ваш сервисный аккаунт в качестве редактора.

Примеры работы с Google Таблицами

Разберём два примера работы с Google Таблицами.


Пример 1. Запись в Google Таблицу

Задача: получить имя и номер телефона пользователя и сохранить их в таблицу.

Шаг 1. Создаём простого агента "Секретарь".

Системный промпт:

Ты виртуальный секретарь, 
Спроси имя и номер телефона, после этого вызови функцию save_record_to_google_sheet

Шаг 2. В разделе Функции обязательно включите (если выключено) использование функций.

Создайте функцию save_record_to_google_sheet с описанием "Сохранить запись в Google Таблице".

Добавьте два параметра: name и phone_number.

Прокрутите страницу вниз и включите Python Script.

Шаг 4. Удалите текущий код и вставьте подготовленный код:

def write_to_google_sheet():
    scope = [
        'https://www.googleapis.com/auth/spreadsheets',
        'https://www.googleapis.com/auth/drive'
    ]

    # Надо заменить данные на ваш JSON ключ
    json_data = {
        "type": "service_account",
        "project_id": "your_project_id",
        "private_key_id": "your_private_key_id",
        "private_key": "-----BEGIN PRIVATE KEY-----\nyour_private_key\n-----END PRIVATE KEY-----\n",
        "client_email": "your_service_account_email",
        "client_id": "your_client_id",
        "auth_uri": "https://accounts.google.com/o/oauth2/auth",
        "token_uri": "https://oauth2.googleapis.com/token",
        "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
        "client_x509_cert_url": "your_client_cert_url"
}
    # Получаем ServiceAccountCredentials из структуры словаря
    debug("Получаем ServiceAccountCredentials")
    ServiceAccountCredentials = oauth2client['service_account']['ServiceAccountCredentials']
    # Авторизация
    creds = ServiceAccountCredentials.from_json_keyfile_dict(json_data, scope)
    client = gspread.authorize(creds)

    # Открытие таблицы
    sheet = client.open(table_name).sheet1
    data_to_append = [args.get("name", ""), args.get("phone_number", "")]
    
    # Запись данных
    sheet.append_row(data_to_append)
    global result
    result = {
            'status': 'success',
            'write': {
                'message': 'Данные успешно записаны',
                'data': data_to_append
            }
    }
table_name = 'Имя Вашей Таблицы' #тут прописываем имя таблицы
result ={}
write_to_google_sheet()

Обязательно вставьте свои данные в json_data и укажите актуальное имя таблицы в table_name.

Код надо подготовить. Из файла с ключом скопируйте все что между фигурными скобочками и вставьте в json_data переменную

Не забудьте прописать имя вашей таблицы

table_name = 'Имя Вашей Таблицы' #тут прописываем имя таблицы

Пример таблицы: Таблица "Contacts" с двумя колонками: "Имя" и "Номер телефона".

Тест:

Оставьте в полях name и phone_number значения test_value , нажмите "Запустить тест"— и убедитесь, что запись появилась в таблице.

Можно проверить работу из диалога

Убедитесь что, что запись появилась в таблице.


Пример 2. Чтение из таблицы

Задача: Получить цену на услуги из прайс-листа.

Способ, описанный ниже, не подойдёт для больших таблиц.

Создаём ИИ-агента "Мастер маникюра".

Напишем простенький промпт

Ты мастер маникюра Роза 🦋

Шаг за шагом выясни:
1. Тип услуги — используй read_data_from_google_sheet, чтобы проверить, есть ли такая услуга.
2. Время записи — используй get_available_start_times_by_datetime_range.
3. Имя и номер телефона.

Будь дружелюбной, используй эмодзи, шути, дари клиенту хорошее настроение 💅✨

Создайте функцию read_data_from_google_sheet (Чтение из гугл таблиц)

Добавьте параметр функции для поиска: service_name - тип услуги.

Сделайте его листовым (выпадающий список) и укажите названия всех услуг из таблицы, а также два значения: Да и Нет (для поиска по столбцу "Акция").

Включите Python Script и замените код в поле "Код Функции" на код ниже

scope = [
    'https://www.googleapis.com/auth/spreadsheets',
    'https://www.googleapis.com/auth/drive'
]
debug("Область доступа определена")

# Данные сервисного аккаунта в формате JSON
json_data =  {
        "type": "service_account",
        "project_id": "your_project_id",
        "private_key_id": "your_private_key_id",
        "private_key": "-----BEGIN PRIVATE KEY-----\nyour_private_key\n-----END PRIVATE KEY-----\n",
        "client_email": "your_service_account_email",
        "client_id": "your_client_id",
        "auth_uri": "https://accounts.google.com/o/oauth2/auth",
        "token_uri": "https://oauth2.googleapis.com/token",
        "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
        "client_x509_cert_url": "your_client_cert_url"
}
debug("JSON данные сервисного аккаунта подготовлены")
def search_in_sheet(query):
    # Получаем ServiceAccountCredentials из структуры словаря
    debug("Получаем ServiceAccountCredentials")
    ServiceAccountCredentials = oauth2client['service_account']['ServiceAccountCredentials']
    
    # Создаем учетные данные из JSON
    debug("Создаем учетные данные")
    creds = ServiceAccountCredentials.from_json_keyfile_dict(json_data, scope)
    
    # Авторизуемся в Google Sheets
    debug("Авторизация в Google Sheets")
    client = gspread.authorize(creds)
    
    # 1. Открытие таблицы
    
    debug(f"Открываем таблицу {table_name}")
    sheet = client.open(table_name).sheet1
    
      
    # 2. ЧТЕНИЕ данных из таблицы
    debug("ЧТЕНИЕ: Получаем данные из таблицы")
    
    debug("Получаем все данные")
    all_values = sheet.get_all_values()
    headers = all_values[0]

    results = []
    for row in all_values[1:]:  # Пропускаем заголовки
        for cell in row:
            if query.lower() in str(cell).lower():
                results.append(row)
                break  # если хотя бы одна ячейка подходит — добавляем строку и переходим к следующей

    return results

table_name = 'Имя Вашей Таблицы' #тут прописываем имя таблицы
query = args.get("service_name", "")
found_rows = search_in_sheet(query)

result = {'status': 'success',
        'read': {
               'data': found_rows  # Все найденные строки строки
        }}

Обратите внимание что в переменной json_data надо вставить данные из вашего JSON ключа, а в переменной table_name надо прописать имя вашей таблицы.

Код надо подготовить. Из файла с ключом скопируйте все что между фигурными скобочками и вставьте в json_data переменную

Не забудьте прописать имя вашей таблицы

table_name = 'Имя Вашей Таблицы' #тут прописываем имя таблицы

Тестирование:

Нажмите "Тестировать Код", выберите в параметрах service_name значение Да, запустите тест.

Проверьте результат:

Протестируйте в диалоге:

ИИ-Агент анализирует полученную информацию и выдаёт ответ на основе данных из таблицы

Шаг 3. Найдите ваш JSON-ключ, полученный на этапе

Перед следующим шагом найдите ваш JSON ключ полученный на шаге

Подготовка Google аккаунта и получение ключа для интеграции
Подготовка Google аккаунта и получение ключа для интеграции
https://console.cloud.google.com/
https://console.cloud.google.com/iam-admin/serviceaccounts
Прайслист