Бизнес

Работа с Гугл таблицами

Работа с Гугл сервисами

Работа с Битрикс 24

Работа с Yclients

Работа c файлами

Другие СРМ

Работа с HH.ru

Распознавание данных

Презентации PPTX

Поиск и отправка данных

Получение товаров

Дополнительные функции

Работа с Гугл таблицами

Заполнение Google таблицы данными

Заполнение Google таблицы данными

{  
    "name": "edit_google_sheet",  
    "description": "Редактировать данные в Google Sheet",  
    "parameters": {  
        "type": "object",  
        "properties": { 
            "url": {  
                "type": "string",  
                "description": "URL Google Sheet",  
            }, 
            "data": {  
                "type": "string",  
                "description": "Данные для добавления в одну строку в формате: `A1::значение1##G2::значение2##FB25::значение3`", 
            }, 
        }, 
        "required": ["url", "data"],  
    },  
},

Добавить строку в таблицу Google

Позволяет вести запись в строку таблицы Google без затрат токенов.

{
    "name": "append_row_to_google_sheet",
    "description": "Appent row to Google Sheet",
    "parameters": {
        "type": "object",
        "properties": {
            "url": {
                "type": "string",
                "description": "URL of Google Sheet",
            },
            "sheet_number": {
                "type": "integer",
                "description": "List Index in Google Sheet. Starts from 1. Default value is 1.",
            },
            "sheet_name": {
                "type": "string",
                "description": "List Name in Google Sheet. Not required.",
            },
            "row_to_append": {
                "type": "string",
                "description": "Row data to append at the end of Google Sheet formatted like this: `value1;;value2;;value3`",
            },
        },
        "required": ["url", "sheet_number", "text_to_append"],
    },
},

Работа с Гугл сервисами

Управление Google календарем

С помощью функции бот может безопасно добавлять, просматривать, редактировать и удалять события в Google календаре. В поведении боту пропишите эти настройки:

1. Для твоей работы необходим ID календаря, который ты будешь передавать в функцию "google_calendar". ID календаря может быть предоставлен и в виде Email адреса. Без него ты не можешь отвечать ни на какие вопросы пользователя.
2. При показе запланированных событий после названия события указывай его "event_id".
3. Вот инструкции как пользоваться функцией:

Пропишите в промте боту как правильно этим пользоваться:

Тип действия. 
`+` - означает добавление события. 
`?` - означает получение всех событий календаря.. 
`-` - удалить событие в календаре. 
`.` - редактировать событие в календаре.

Также необходимо в настройках вашего календаря с помощью браузера открыть доступ к этому пользователю: "[email protected]" с правами "Внесение изменений и предоставления доступа".

ID календаря может быть как в виде e-mail адреса, так и в виде собственного обозначения, если это не основной календарь (ID можно найти в настройках интеграции календаря). Если боту предоставить ID не верный, будет выходить ошибка.

    {
    "name": "google_calendar",
    "description": "Управление календарем Google",
    "parameters": {
        "type": "object",
        "properties": {
            "calendarId": {
                "type": "string",
                "description": "ID календаря",
            },
            "action": {
                "type": "string",
                "enum": ["+", "?", '-', '.'],
                "description": "Тип действия. `+` - означает добавление события. `?` - означает получение всех событий календаря.. `-` - удалить событие в календаре. `.` - редактировать событие в календаре.",
            },
            "event_ids": {
                "type": "string",
                "description": "Список ID событий в календаре в формате json строки: ```[{\"event_id\": \"3lsvlor3hjlgpgmv7er7e5juov\"}]```. Передается при типах действия `-` или '.'",
            },
            "events": {
                "type": "string",
                "description": "Список событий в формате json строки: ```[{\"summary\": \"test event\", \"description\": \"some info\", \"start\": {\"dateTime\": \"2024-09-04T03:00:00+03:00\"}, \"end\": {\"dateTime\": \"2024-09-04T05:30:00+03:00\"}}]```. Передается при типах действия `+` или '.'",
            },
            "start_date": {
                "type": "string",
                "description": "Дата начала периода в формате `2024-09-04T03:00:00+03:00`. Передается при типах действия `?` или '-'",
            },
            "end_date": {
                "type": "string",
                "description": "Дата окончания периода в формате `2024-09-04T03:00:00+03:00`. Передается при типах действия `?` или '-'",
            },
        },
        "required": ["calendarId", "action"],
    },
},

Чтение текста из Google документа v2

Чтение текста из Google документа v2

{  
    "name": "read_google_doc_text",  
    "description": "Читает содержимое Google Docs по URL и возвращает текст с ограничением по размеру",  
    "parameters": {  
        "type": "object",  
        "properties": { 
            "url": {  
                "type": "string",  
                "description": "URL документа Google Docs",  
            },
            "limit": {  
                "type": "integer",  
                "description": "Максимальное количество символов в ответе. По умолчанию равно 8000",  
                "minimum": 1  
            },
            "return_as_link": {  
                "type": "integer",  
                "description": "0 - возвращает текст, 1 - возвращает ссылку на файл txt вместо текста",  
            },
        }, 
        "required": ["url", "return_as_link"],  
    },  
},

Замена текста в шаблоне Google Slides

Пример инструкции в боте:

Получить информацию от пользователя  и Измени только эти значения:
###company_name### — замените на новое название компании.
###pres_name### — замените на название презентации.
###about_us### — замените на текст “О компании”.
###about_us_2### — замените на дополнительный текст “О компании”.
###product_1### — замените на описание первого продукта/услуги.
{  
    "name": "replace_in_google_slides",  
    "description": "Заменить текстовые метки в Google Slides",  
    "parameters": {  
        "type": "object",  
        "properties": { 
            "url": {  
                "type": "string",  
                "description": "URL презентации Google Slides",  
            }, 
            "replacements": {  
                "type": "string",  
                "description": "Строка замен строго в формате: `метка1->значение1||метка2->значение2`. `->` - этот разделитель обязателен.",
            },
            "format": {  
                "type": "string",  
                "description": "Формат возвращаемой ссылки",  
                "enum": ["link", "pdf", "pptx"],  
            }, 
        }, 
        "required": ["url", "replacements", "format"],  
    },  
},

Записать текст в документ Google

Записать текст в документ Google

{
    "name": "append_text_to_google_doc",
    "description": "Appent text to Google Document",
    "parameters": {
        "type": "object",
        "properties": {
            "url": {
                "type": "string",
                "description": "URL of Google Document",
            },
            "text_to_append": {
                "type": "string",
                "description": "Text to append at the end of Google Document",
            },
        },
        "required": ["url", "text_to_append"],
    },
},

Чтение текста из Google документа

Чтение текста из Google документа

{  
    "name": "get_google_doc_text",  
    "description": "Получить текст из документа Google по URL",  
    "parameters": {  
        "type": "object",  
        "properties": { 
            "url": {  
                "type": "string",  
                "description": "URL документа Google",  
            },
            "limit": {  
                "type": "integer",  
                "description": "Максимально количество букв в ответе, по умолчанию 8000",  
            },
        }, 
        "required": ["url", "limit"],  
    },  
},

Редактирование презентации в Google Slides (с использованием ИИ)

Пример инструкции в роли бота:

В этой презентации:
https://docs.google.com/presentation/d/1RSl-KiaTh7xB-R3tOywleXyO6LvPd4dv5wyjbOjkfUY/edit?usp=sharing
Напиши слоган и замени лучшая на эффективная
{  
    "name": "ai_edit_google_slides",  
    "description": "Редактирует текст в Google Slides",  
    "parameters": {  
        "type": "object",  
        "properties": { 
            "url": {  
                "type": "string",  
                "description": "URL презентации Google Slides",  
            }, 
            "task": {  
                "type": "string",  
                "description": "Задача, содержащая слоган и слово для замены", 
            }, 
        }, 
        "required": ["url", "task"],  
    },  
},

Замена текста в шаблоне Google Document

Пример инструкции в боте:

Получить информацию от пользователя  и Измени только эти значения:
###company_name### — замените на новое название компании.
###pres_name### — замените на название документа.
###about_us### — замените на текст “О компании”.
###about_us_2### — замените на дополнительный текст “О компании”.
###product_1### — замените на описание первого продукта/услуги.
{  
    "name": "replace_in_google_doc",  
    "description": "Заменить текстовые метки в Google Document",  
    "parameters": {  
        "type": "object",  
        "properties": { 
            "url": {  
                "type": "string",  
                "description": "URL презентации Google Document",  
            }, 
            "replacements": {  
                "type": "string",  
                "description": "Строка замен строго в формате: `метка1->значение1||метка2->значение2`. `->` - этот разделитель обязателен.",
            },
            "format": {  
                "type": "string",  
                "description": "Формат возвращаемой ссылки",  
                "enum": ["link", "pdf", "docx"],  
            }, 
        }, 
        "required": ["url", "replacements", "format"],  
    },  
},

Работа с Битрикс 24

Отправить лид в Битрикс24

Отправить лид в Битрикс24

{ 
    "name": "send_lead_bitrix24", 
    "description": "Отправка лида в Bitrix24", 
    "parameters": { 
        "type": "object", 
        "properties": { 
            "bitrix_webhook": { 
                "type": "string", 
                "description": "Вебхук Bitrix24", 
            }, 
            "name": { 
                "type": "string", 
                "description": "Имя клиента", 
            }, 
            "phone": { 
                "type": "string", 
                "description": "Номер телефона клиента", 
            }, 
     	    "email": { 
                "type": "string", 
                "description": "E-mail клиента", 
            },
        }, 
        "required": ["bitrix_webhook", "name", "phone", "email"], 
    }, 
}, 

Получение лида из Битрикс24

Функция запрашивает в Битрикс24 новый лид

{  
    "name": "get_lead_from_bitrix24",  
    "description": "Get lead information from Bitrix24",  
    "parameters": {  
        "type": "object",  
        "properties": { 
            "webhook": {  
                "type": "string",  
                "description": "Bitrix24 webhook URL",  
            }
        }, 
        "required": ["webhook"],  
    },  
},

Изменить стадию сделки в Битрикс24

Функция update_deal_stage предназначена для обновления стадии сделки в системе Битрикс24. Она принимает три параметра: deal_id (идентификатор сделки), stage_id (идентификатор новой стадии) и webhook_url (URL вебхука для отправки запроса).

{  
    "name": "bitrix_update_deal_stage",  
    "description": "Обновить стадию сделки в Битрикс24",  
    "parameters": {  
        "type": "object",  
        "properties": { 
            "deal_id": {  
                "type": "integer",  
                "description": "ID сделки",  
            }, 
            "stage_id": {  
                "type": "string",  
                "description": "ID новой стадии", 
            }, 
            "webhook_url": {  
                "type": "string",  
                "description": "URL вебхука Битрикс24", 
            }, 
        }, 
        "required": ["deal_id", "stage_id", "webhook_url"],  
    },  
},

Получить данные из определенной сделки из Битрикс

Функция работает при заполненном вебхуке Битрикс24 в разделе "Лидогенерация".

Для получения данных о сделке в функцию нужно предать ID сделки.

{  
    "name": "bitrix_get_dial_fields",  
    "description": "Получить данные из определенной сделки из Битрикс",  
    "parameters": {  
        "type": "object",  
        "properties": { 
            "deal_id": {  
                "type": "string",  
                "description": "ID сделки",  
            }, 
        }, 
        "required": ["deal_id"],  
    },  
}, 

Получение задачи из Bitrix24

Получение задачи из Bitrix24

{ 
    "name": "bitrix_get_task", 
    "description": "Получение задачи из Bitrix24", 
    "parameters": { 
        "type": "object", 
        "properties": { 
            "bitrix_webhook": { 
                "type": "string", 
                "description": "Bitrix24 webhook URL", 
            }, 
            "keyword": { 
                "type": "string", 
                "description": "Ключевое слово в названии задачи", 
            },
        }, 
        "required": ["bitrix_webhook", "keyword"], 
    }, 
},

Завершение задачи в Bitrix24

Завершение задачи в Bitrix24

{ 
    "name": "bitrix_end_task", 
    "description": "Завершение задачи из Bitrix24", 
    "parameters": { 
        "type": "object", 
        "properties": { 
            "bitrix_webhook": { 
                "type": "string", 
                "description": "Bitrix24 webhook URL", 
            }, 
            "ID": { 
                "type": "integer", 
                "description": "ID задачи в Bitrix24", 
            },
            "task_result": { 
                "type": "string", 
                "description": "Текст с результатом выполнения задачи", 
            },
        }, 
        "required": ["bitrix_webhook", "ID", "task_result"], 
    }, 
},

Прикрепить файл к задаче в Bitrix24

Пример инструкции в боте:

Прикрепи файл к задаче в Битрикс24: https://minio.nplus1.ru/app-images/152754/30c1c568a1e8e538911c6f8d02ca69f2.jpg
Номер задачи: 122
ID папки: 1
Webhook Битрикс24: "https://COMPANY.bitrix24.ru/rest/1/b7zwgdXXXXXXXX"
{  
    "name": "bitrix24_attach_file_to_task",  
    "description": "Прикрепить файл к задаче в Bitrix24",  
    "parameters": {  
        "type": "object",  
        "properties": { 
            "bitrix24_webhook": {  
                "type": "string",  
                "description": "Вебхук для доступа к API Bitrix24",  
            }, 
            "task_id": {  
                "type": "string",  
                "description": "ID задачи, к которой нужно прикрепить файл",  
            },
            "folder_id": {  
                "type": "string",  
                "description": "ID папки, в которой находится задача",  
            },
            "file_url": {  
                "type": "string",  
                "description": "URL файла, который нужно прикрепить",  
            },
        }, 
        "required": ["bitrix24_webhook", "task_id", "folder_id", "file_url"],  
    },  
},

Получение товаров из категории на сайте Bitrix24

Получение товаров из категории на сайте Bitrix.

Для работы функции создайте в корне сайта файл api_products.php со следующим кодом:

<?php
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

// Проверка, что запрос является POST
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    die(json_encode(array("error" => "Only POST requests are allowed")));
}

// Подключение необходимых модулей
CModule::IncludeModule("iblock");

// Получение параметров из POST-запроса
$postData = json_decode(file_get_contents('php://input'), true);

$site_url = $postData['site_url'] ?? null;
$searchName = $postData['name'] ?? '';
$categoryId = $postData['category_id'] ?? null;
$minPrice = $postData['min_price'] ?? null;
$maxPrice = $postData['max_price'] ?? null;

// Формирование фильтра
$arFilter = array(
    "IBLOCK_ID" => 2,
    "ACTIVE" => "Y"
);

if (!empty($searchName)) {
    $arFilter["%NAME"] = $searchName;
}

if ($categoryId) {
    $arFilter["SECTION_ID"] = $categoryId;
    $arFilter["INCLUDE_SUBSECTIONS"] = "Y";
}

// Выборка товаров
//$arSelect = array("ID", "NAME", "DETAIL_PAGE_URL", "PREVIEW_PICTURE", "PROPERTY_PRICE", "CATALOG_QUANTITY");
$arSelect = array("*", "PROPERTY_*");
$arResult = array();

$res = CIBlockElement::GetList(array(), $arFilter, false, array("nPageSize" => 50), $arSelect);

while($ob = $res->GetNextElement()) {
    $arFields = $ob->GetFields();
	$arProps = $ob->GetProperties();
    $imageUrl = CFile::GetPath($arFields["DETAIL_PICTURE"]);

	$arFilter = array("PRODUCT_ID" => $arFields["ID"]);
    $price = CPrice::GetList(array(), $arFilter)->Fetch();
    $productPrice = $price["PRICE"];

	if ($minPrice !== null) {
		if ($productPrice < $minPrice) {
			continue;
		}
	}
	
	if ($maxPrice !== null) {
		if ($productPrice > $maxPrice) {
			continue;
		}
	}

    // Проверяем, начинается ли URL с "/upload/"
    if (strpos($imageUrl, '/upload/') === 0) {
        $imageUrl = $site_url . $imageUrl;
    }
    
    $arResult[] = array(
		"name" => $arFields["NAME"],
		"price" => $productPrice,
		"url" => $site_url . $arFields["DETAIL_PAGE_URL"],
		"details" => $arFields["DETAIL_TEXT"],
		"image_url" => $imageUrl
    );
}

// Вывод результата в формате JSON
header('Content-Type: application/json');
echo json_encode($arResult);

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php");
?>

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

{  
    "name": "get_products_bitrix",  
    "description": "Получить товары с сайта на Битрикс по заданным параметрам",  
    "parameters": {  
        "type": "object",  
        "properties": { 
            "site_url": {  
                "type": "string",  
                "description": "URL сайта для поиска товаров без `/` в конце",  
            }, 
            "paraments": {  
                "type": "string",  
                "description": """
                Параметры поиска в виде: `name:id:min_price:max_price:limit##name:id:min_price:max_price:limit##`
                `name` - Название товара (может быть прочерком `-`)
                `nacategory_idme` - ID категории товара
                `min_price` - Минимальная цена товара
                `max_price` - Максимальная цена товара
                `limit` - Сколько товаров должно быть в ответе. По умолчанию 10
                """,  
            }, 
        }, 
        "required": ["site_url", "paraments"],  
    },  
},

Анализ аудио записей из Bitrix24 папки

Сначала функция обращается в папку на диске Bitrix24 и скачивает все новые .mp3 файлы за последние 10 минут. Далее она переводит все файлы в текст и проводит анализ диалогов. Результаты она записывает в таблицу Google.

{ 
    "name": "bitrix_mp3_to_sheet", 
    "description": "Анализ аудио записей из папки Bitrix24", 
    "parameters": { 
        "type": "object", 
        "properties": { 
            "bitrix_webhook": { 
                "type": "string", 
                "description": "Bitrix24 webhook URL", 
            }, 
            "folder_id": { 
                "type": "integer", 
                "description": "Bitrix24 folder ID", 
            },
            "ID": { 
                "type": "integer", 
                "description": "ID бота для анализа диалогов", 
            },
            "sheet_url": { 
                "type": "string", 
                "description": "URL таблицы Google Sheet", 
            },
            "api_token": { 
                "type": "string", 
                "description": "API token бота для анализа диалогов", 
            },
            "time_interval": { 
                "type": "integer", 
                "description": "Интервал для загрузки новых файлов в минутах", 
            },
        }, 
        "required": ["bitrix_webhook", "folder_id", "ID", "sheet_url", "api_token", "time_interval"], 
    }, 
}, 

Работа с Yclients

Yclients: Запись на услугу с указанием даты и времени

Yclients: Запись на услугу с указанием даты и времени

{
    "name": "yclients_book_record",
    "description": "Yclients: Запись на услугу с указанием даты и времени",
    "parameters": {
        "type": "object",
        "properties": {
            "phone": {
                "type": "string",
                "description": "Номер телефона для записи",
            },
            "code": {
                "type": "integer",
                "description": "Код для аутентификации",
            },
            "datetime": {
                "type": "string",
                "description": "Дата и время записи в формате ISO 8601",
            },
            "api_key": {
                "type": "string",
                "description": "API ключ для авторизации",
            },
            "api_key_user": {
                "type": "string",
                "description": "Пользовательский API ключ для авторизации",
            },
        },
        "required": ["phone", "code", "datetime", "api_key", "api_key_user"],
    },
},

Yclients: Получить список сотрудников и их услуг по ID компании

Yclients: Получить список сотрудников и их услуг по ID компании

{
    "name": "yclients_get_staff_list_with_services",
    "description": "Yclients: Получить список сотрудников и их услуг по ID компании",
    "parameters": {
        "type": "object",
        "properties": {
            "api_key": {
                "type": "string",
                "description": "API ключ для доступа к Yclients"
            },
            "company_id": {
                "type": "integer",
                "description": "ID компании в Yclients"
            },
            "api_key_user": {
                "type": "string",
                "description": "API ключ пользователя для доступа к Yclients"
            }
        },
        "required": ["api_key", "company_id", "api_key_user"]
    },
},

Получение текущих записей по номеру телефона клиента в сервисе YClients

Пример инструкции в боте:

Используй эти данные для записи клиентов:
АПИ токен: "XXXXXXXXXXXXX"
Токен пользователя: "XXXXXXXXXXXXXXXXXXXXXX"
Номер компании: 309XXX
{  
    "name": "yclients_client_appointments",  
    "description": "Получить записи клиента по номеру телефона",  
    "parameters": {  
        "type": "object",  
        "properties": { 
            "company_id": {  
                "type": "integer",  
                "description": "ID компании в YClients",  
            }, 
            "api_token": {  
                "type": "string",  
                "description": "API токен для доступа к YClients",  
            }, 
            "user_token": {  
                "type": "string",  
                "description": "Токен пользователя для доступа к YClients",  
            }, 
            "client_phone": {  
                "type": "string",  
                "description": "Номер телефона клиента", 
            }, 
        }, 
        "required": ["company_id", "api_token", "user_token", "client_phone"],  
    },  
},

Создать запись в сервисе YClients

Пример инструкции в роли бота:

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

Используй в общении смайлы: 🏙️,✍,😇,🙏🏻,🌿 .
Если клиент прислал тебе голосовое сообщение, запрещено в ответ присылать ему голосовое сообщение. Не присылай в ответ голосовые сообщения и любые аудио файлы!
Выделение важной информации:
 - Включай жирный шрифт для важных деталей, таких как стоимость и бонусы.
Запрещено писать чтобы клиент подождал.

Твоя задача создавать записи клиентов на сеансы в наш салон красоты.

Номера услуг:
1340XXX - ПараМедицинский МАНИКЮР (seance_length - 2часа)
...

Номера специалистов:
3276XXXX - Милана (подолог)
...

Используй эти данные для записи клиентов:
АПИ токен: "XXXXXXXXXXXXX"
Токен пользователя: "XXXXXXXXXXXXXXXXXXXXXX"
Номер компании: 309XXX

Емайл у всех клиентов передавай такой: [email protected]
{  
    "name": "yclients_book_appointment",  
    "description": "Записать клиента на прием через API YClients",  
    "parameters": {  
        "type": "object",  
        "properties": { 
            "company_id": {  
                "type": "integer",  
                "description": "ID компании в YClients",  
            }, 
            "api_token": {  
                "type": "string",  
                "description": "API токен для доступа к YClients",  
            }, 
            "user_token": {  
                "type": "string",  
                "description": "Токен пользователя для доступа к YClients",  
            }, 
            "client_info": {  
                "type": "string",  
                "description": "Информация о клиенте в формате 'телефон;имя;email'",  
            }, 
            "staff_id": {  
                "type": "integer",  
                "description": "ID сотрудника, к которому записывается клиент",  
            }, 
            "service_ids": {  
                "type": "string",  
                "description": "ID услуг, разделенные точкой с запятой",  
            }, 
            "datetime": {  
                "type": "string",  
                "description": "Дата и время записи в формате ISO 8601",  
            }, 
            "seance_length": {  
                "type": "integer",  
                "description": "Длительность сеанса в минутах",  
            }, 
        }, 
        "required": ["company_id", "api_token", "user_token", "client_info", "staff_id", "service_ids", "datetime", "seance_length"],  
    },  
},

Yclients: Получить полный список данных о клиенте по номеру телефона

Yclients: Получить полный список данных о клиенте по номеру телефона

{
    "name": "yclients_get_client_data_by_phone",
    "description": "Yclients: Получить полный список данных о клиенте по номеру телефона",
    "parameters": {
        "type": "object",
        "properties": {
            "company_id": {
                "type": "integer",
                "description": "ID компании",
            },
            "phone": {
                "type": "string",
                "description": "Номер телефона клиента",
            },
            "api_key": {
                "type": "string",
                "description": "bearer api_key",
            },
        },
        "required": ["company_id", "phone", "api_key"],
    },
},

Удаление записей клиента в сервисе YClients

Пример инструкции в боте:

Используй эти данные для записи клиентов:
АПИ токен: "XXXXXXXXXXXXX"
Токен пользователя: "XXXXXXXXXXXXXXXXXXXXXX"
Номер компании: 309XXX
Номера записей: 914XXXXX; 9144XXXX
{  
    "name": "yclients_delete_client_appointments",  
    "description": "Удалить записи клиента в сервисе YClients по списку ID записей",  
    "parameters": {  
        "type": "object",  
        "properties": { 
            "company_id": {  
                "type": "integer",  
                "description": "ID компании в YClients",  
            }, 
            "api_token": {  
                "type": "string",  
                "description": "API токен для доступа к YClients",  
            }, 
            "user_token": {  
                "type": "string",  
                "description": "Токен пользователя для доступа к YClients",  
            }, 
            "record_ids": {  
                "type": "string",  
                "description": "ID записией, которые нужно удалить, разделенные точкой с запятой", 
            }, 
        }, 
        "required": ["company_id", "api_token", "user_token", "record_ids"],  
    },  
},

Yclients: Получить график сотрудника на указанные даты

Yclients: Получить график сотрудника на указанные даты

{
    "name": "yclients_get_employee_schedule",
    "description": "Yclients: Получить график сотрудника на указанные даты",
    "parameters": {
        "type": "object",
        "properties": {
            "start_date": {
                "type": "string",
                "description": "Дата начала в формате YYYY-MM-DD",
            },
            "end_date": {
                "type": "string",
                "description": "Дата окончания в формате YYYY-MM-DD",
            },
            "api_key": {
                "type": "string",
                "description": "bearer api_key",
            },
            "company_id": {
                "type": "integer",
                "description": "company_id",
            },
            "api_key_user": {
                "type": "string",
                "description": "api_key_user",
            },
        },
        "required": ["start_date", "end_date", "api_key", "company_id", "api_key_user"],
    },
},

Работа c файлами

Генерация PDF

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

"Если я попрошу сделать PDF, то оформи текст в соответствии с заданием в формате HTML и сформируй из этого файл PDF".
{
    "name": "generate_pdf_from_html",
    "description": "Генерация PDF документа на основе HTML-кода",
    "parameters": {
        "type": "object",
        "properties": {
            "title": {
                "type": "string",
                "description": "Заголовок HTML-документа"
            },
            "body_content": {
                "type": "string",
                "description": "Содержимое тела HTML-документа"
            },
            "styles": {
                "type": "string",
                "description": "CSS-стили для HTML-документа"
            },
            "filename": {
                "type": "string",
                "description": "Имя файла на выходе. Не обязательный параметр."
            },
        },
        "required": ["title", "body_content"]
    },
},

Чтение офисных файлов

Функция переводит файлы форматов PDF, DOC, XLS, PPT в текст

{
    "name": "read_file_from_url",
    "description": "Read a file from a URL and extract text with Cyrillic support",
    "parameters": {
        "type": "object",
        "properties": {
            "url": {
                "type": "string",
                "description": "URL of the file",
            },
            "file_type": {
                "type": "string",
                "description": "Type of the file to read",
                "enum": ["PDF", "DOC", "DOCX", "XLS", "XLSX", "PPT", "PPTX"],
            }
        },
        "required": ["url", "file_type"],
    },
},

Другие СРМ

Поиск товаров на Мойсклад

Поиск товара по ключевому слову в базу сервиса Мойсклад

{  
    "name": "moysklad_search",  
    "description": "Search for products by query in the Moysklad API",  
    "parameters": {  
        "type": "object",  
        "properties": { 
            "query": {  
                "type": "string",  
                "description": "Search query",  
            }, 
            "token": {  
                "type": "string",  
                "description": "Bearer token for authorization", 
            }, 
        }, 
        "required": ["query", "token"],  
    },  
},

Получить данные из определенной сделки из AmoCRM

Функция работает при заполненном вебхуке AmoCRM в разделе "Лидогенерация".

Для получения данных о сделке в функцию нужно предать ID сделки.

{  
    "name": "amocrm_get_lead",  
    "description": "Получить данные о сделке из AmoCRM по ID сделки",  
    "parameters": {  
        "type": "object",  
        "properties": { 
            "lead_id": {  
                "type": "integer",  
                "description": "ID сделки, данные которой нужно получить",  
            }, 
        }, 
        "required": ["lead_id"],  
    },  
},

Работа с HH.ru

Поиск резюме на сайте HH

Функция предназначена для поиска резюме на платформе hh.ru. Она принимает несколько параметров, включая OAuth токен для авторизации, текст для поиска, ID региона, опыт работы и количество результатов на странице.

  1. api_token: обязательный параметр, который используется для авторизации при обращении к API.

  2. search_text: обязательный параметр, который определяет, что именно нужно искать в резюме.

  3. area: опциональный параметр, который позволяет указать ID региона для более точного поиска.

  4. experience: опциональный параметр, который позволяет фильтровать резюме по опыту работы. Возможные значения: "noExperience", "between1And3", "between3And6", "moreThan6".

  5. per_page: опциональный параметр, который задает количество результатов на странице (по умолчанию 20).

{  
    "name": "hh_search_resumes",  
    "description": "Поиск резюме на hh.ru",  
    "parameters": {  
        "type": "object",  
        "properties": { 
            "api_token": {  
                "type": "string",  
                "description": "OAuth токен для авторизации",  
            }, 
            "search_text": {  
                "type": "string",  
                "description": "Текст для поиска",  
            }, 
            "area": {  
                "type": "string",  
                "description": "ID региона поиска",  
            }, 
            "experience": {  
                "type": "string",  
                "description": "Опыт работы",  
                "enum": ["noExperience", "between1And3", "between3And6", "moreThan6"], 
            }, 
            "per_page": {  
                "type": "integer",  
                "description": "Количество результатов на странице",  
            }, 
        }, 
        "required": ["api_token", "search_text"],  
    },  
},

Поиск вакансий на HH.ru

Функция ищет по запросу вакансии на сайте HH.ru

{ 
    "name": "hh_vacancies", 
    "description": "Поиск вакансий на сайте HH.ru", 
    "parameters": { 
        "type": "object", 
        "properties": { 
           "search_filter": { 
                "type": "string", 
                "description": "Поисковый фильтр", 
            },
            "region_id": { 
                "type": "integer", 
                "description": "ID города или региона", 
            },
            "period": { 
                "type": "integer", 
                "description": "Период в днях, за который появились вакансии", 
            },
        }, 
        "required": ["search_filter", "region_id", "period"], 
    }, 
},

Поиск резюме на HH.ru

Функция invite_for_interview предназначена для поиска резюме на сайте HH.ru и отправки приглашений на собеседование. Она принимает следующие параметры:

  • search_query: строка, содержащая поисковый запрос для поиска резюме.

  • employer_id: строка, содержащая ID работодателя на HH.ru.

  • vacancy_id: строка, содержащая ID вакансии, на которую отправляется приглашение.

  • message: строка, содержащая сообщение для приглашения на собеседование.

Функция выполняет следующие шаги:

  1. Формирует URL и параметры для поиска резюме на HH.ru.

  2. Выполняет запрос к API HH.ru для поиска резюме по заданному поисковому запросу.

  3. Проверяет, успешно ли выполнен запрос и найдены ли резюме.

  4. Формирует URL для отправки приглашений на собеседование.

  5. Для каждого найденного резюме отправляет приглашение на собеседование с указанным сообщением.

  6. Возвращает сообщение о результате выполнения: либо "Приглашения успешно отправлены", либо сообщение об ошибке.

Функция использует библиотеку requests для выполнения HTTP-запросов к API HH.ru.

{
    "name": "invite_for_interview",
    "description": "Находит резюме на HH.ru и отправляет приглашение на собеседование",
    "parameters": {
        "type": "object",
        "properties": {
            "search_query": {
                "type": "string",
                "description": "Поисковый запрос для поиска резюме"
            },
            "employer_id": {
                "type": "string",
                "description": "ID работодателя на HH.ru"
            },
            "vacancy_id": {
                "type": "string",
                "description": "ID вакансии, на которую отправляется приглашение"
            },
            "message": {
                "type": "string",
                "description": "Сообщение для приглашения на собеседование"
            }
        },
        "required": ["search_query", "employer_id", "vacancy_id", "message"]
    },
},

Распознавание данных

Распознавание текста на фото

Функция распознает текст на фото

{  
    "name": "easyosr",  
    "description": "Распознование текста по фото",  
    "parameters": {  
        "type": "object",  
        "properties": { 
            "url": {  
                "type": "string",  
                "description": "URL фото для распознования", 
            }, 
        }, 
        "required": ["url"],  
    },  
},

Распознование текста на фото через Gemini-Pro-Vision

Функции нужно отправить ссылку на фото в формате JPG.

{  
    "name": "gemini_vision",  
    "description": "Извлечение текста из изображения по URL",  
    "parameters": {  
        "type": "object",  
        "properties": { 
            "image_url": {  
                "type": "string",  
                "description": "URL изображения",  
            }, 
        }, 
        "required": ["image_url"],  
    },  
},

Распознавание текста на фото и документах используя EasyOSR, GigaChat, YandexOSR, Gemini

Функция osr_combine предназначена для распознавания текста и шаблонных документов с использованием различных моделей.

Модели для распознавания текста: page (по умолчанию) — подходит для изображений с любым количеством строк текста, сверстанного в одну колонку. page-column-sort — для распознавания многоколоночного текста. handwritten — для распознавания произвольного сочетания печатного и рукописного текста на русском и английском языках. table — для распознавания таблиц на русском и английском языках.

Модели для распознавания шаблонных документов: passport — основной разворот паспорта. driver-license-front — водительское удостоверение, лицевая сторона. driver-license-back — водительское удостоверение, обратная сторона. vehicle-registration-front — свидетельство о регистрации транспортного средства, лицевая сторона. vehicle-registration-back — свидетельство о регистрации транспортного средства, обратная сторона. license-plates — все регистрационные номера автомобилей на изображении.

{  
    "name": "osr_combine",  
    "description": "Распознавание текста по фото или PDF",  
    "parameters": {  
        "type": "object",  
        "properties": { 
            "osr_model": {  
                "type": "string",  
                "description": "Модель для распознавания. ```\nМодели для распознавания текста:\npage (по умолчанию) — подходит для изображений с любым количеством строк текста, сверстанного в одну колонку.\npage-column-sort — для распознавания многоколоночного текста.\nhandwritten — для распознавания произвольного сочетания печатного и рукописного текста на русском и английском языках.\ntable — для распознавания таблиц на русском и английском языках.\n    \nМодели для распознавания шаблонных документов:\npassport — основной разворот паспорта.\ndriver-license-front — водительское удостоверение, лицевая сторона.\ndriver-license-back — водительское удостоверение, обратная сторона.\nvehicle-registration-front — свидетельство о регистрации транспортного средства, лицевая сторона.\nvehicle-registration-back — свидетельство о регистрации транспортного средства, обратная сторона.\nlicense-plates — все регистрационные номера автомобилей на изображении.\n```", 
                "enum": ["page", "page-column-sort", "handwritten", "table", "passport", "driver-license-front", "driver-license-back", "vehicle-registration-front", "vehicle-registration-back", "license-plates"], 
            }, 
            "file_url": {  
                "type": "string",  
                "description": "URL изображения или PDF файла для распознавания", 
            },
        }, 
        "required": ["osr_model", "file_url"],  
    },  
},

Распознавание текста (gemini-pro-vision + gemini-flash)

Функции нужно отправить ссылку на фото в формате JPG

{  
    "name": "osr_combine_ai",  
    "description": "Распознавание текста по фото",  
    "parameters": {  
        "type": "object",  
        "properties": { 
            "image_url": {  
                "type": "string",  
                "description": "URL изображения для распознавания", 
            },
        }, 
        "required": ["image_url"],  
    },  
},

Презентации PPTX

Редактирование презентации PPTX

Пример инструкции в роли бота:

1. Запроси ссылку на презентацию в PPTX.
2. Спроси что нужно изменить в презентации.
3. Запусти функцию редактирования PPTX и покажи ответ функции.
{  
    "name": "ai_edit_pptx",  
    "description": "Редактирование PPTX файла",  
    "parameters": {  
        "type": "object",  
        "properties": { 
            "pptx_url": {  
                "type": "string",  
                "description": "URL PPTX файла для редактирования",  
            }, 
            "task": {  
                "type": "string",  
                "description": "Задача редактирования",  
            }, 
            "pdf_result": {  
                "type": "integer",  
                "description": "1 - нужно выдать в формате PDF, 0 - формат PPTX. По умолчанию равно 0.",  
            }, 
        }, 
        "required": ["pptx_url", "task", "pdf_result"],  
    },  
},

Создание презентации PPTX

Пример инструкции в роли бота:

1. Для создание презентации ты должна создать сначала HTML страницу на которой каждый заголовок `<h1>` становится заголовком слайда, а соответствующий текст разбивай на блоки с тегом `<p>`.
2. В одном теге `<p>` не должно быть больше 100 символов.
3. Картинки добавляй отдельно, используя тег `<img>`.
{  
    "name": "generate_pptx",  
    "description": "Создает презентацию PowerPoint из HTML-кода",  
    "parameters": {  
        "type": "object",  
        "properties": { 
            "html_content": {  
                "type": "string",  
                "description": "HTML-код для создания презентации",  
            }, 
        }, 
        "required": ["html_content"],  
    },  
},

Поиск и отправка данных

Отправка лида (все каналы)

Функция необходима для сбора лидов (заявок) ботом и отправки информации вам, настраивается на странице "Настройка сбора лидов"

{ 
    "name": "send_lead", 
    "description": "Отправка лида", 
    "parameters": { 
        "type": "object", 
        "properties": { 
            "name": { 
                "type": "string", 
                "description": "Имя клиента", 
            }, 
            "phone": { 
                "type": "string", 
                "description": "Номер телефона клиента", 
            }, 
 	    "email": { 
                "type": "string", 
                "description": "E-mail клиента", 
            },
            "region": { 
                "type": "string", 
                "description": "Регион или город клиента", 
            },
            "url": { 
                "type": "string", 
                "description": "Адрес страницы на сайте", 
            }, 
            "log": { 
                "type": "string", 
                "description": "Сюда напиши всю переписку с клиентом", 
            },
            "subject": { 
                "type": "string", 
                "description": "Тема письма, в которой название компании в которую обращается клиент", 
            },
            "body": { 
                "type": "string", 
                "description": "Текст письма, в котором укажи все полученные контактные данные клиента и суть его запроса", 
            },
            "amo_pipeline_id": { 
                "type": "integer", 
                "description": "ID воронки в AmoCRM. Не обязательный параметр.", 
            },
            "amo_status_id": { 
                "type": "integer", 
                "description": "ID этапа воронки в AmoCRM. Не обязательный параметр.", 
            },
        }, 
        "required": ["name", "phone", "email", "region", "log", "subject", "body"], 
    }, 
}, 

Поиск контактов на странице сайта

Поиск контактов на странице сайта

{  
    "name": "contacts_in_url",  
    "description": "Получение контактов на странице по её URL",  
    "parameters": {  
        "type": "object",  
        "properties": { 
            "url": {  
                "type": "string",  
                "description": "URL для передачи в запрос",  
            },
            "css_selector": {  
                "type": "string",  
                "description": "CSS селектор нужного блока на странице. Может быть пустым.",  
            },
        }, 
        "required": ["url", "css_selector"],  
    },  
},

Поиск холодных клиентов

Поиск холодных клиентов

{  
    "name": "find_clients",  
    "description": "Поиск контактов клиентов через поиск Яндекса",  
    "parameters": { 
        "type": "object", 
        "properties": { 
            "query": { 
                "type": "string", 
                "description": "Поисковый запрос без указания сайта", 
            }, 
            "site": { 
                "type": "string", 
                "description": "Сайт для поиска. Может быть пустым.", 
            }, 
            "n": { 
                "type": "integer", 
                "description": "Количество найденных страниц", 
            },
            "css_selector": {  
                "type": "string",  
                "description": "CSS селектор нужного блока на странице. Может быть пустым.",  
            },
            "channel": {  
                "type": "string",  
                "enum": ["Emails", "Phones", "Telegram", "WhatsApp"],
                "description": "Тип канала коммуникации с клиентом",  
            },
        }, 
        "required": ["query", "site", "n", "css_selector", "channel"], 
    }, 
}, 

Поиск контакта по базе Apollo.ai

Функция для получения информации о человека по базе данных Apollo.ai

{  
    "name": "apollo_person_search",  
    "description": "Поиск персоны в Apollo.ai",  
    "parameters": {  
        "type": "object",  
        "properties": { 
            "api_key": {  
                "type": "string",  
                "description": "API ключ для доступа к Apollo.ai",  
            }, 
            "first_name": {  
                "type": "string",  
                "description": "Имя персоны", 
            },
            "last_name": {  
                "type": "string",  
                "description": "Фамилия персоны", 
            },
            "organization_name": {  
                "type": "string",  
                "description": "Название организации", 
            },
            "domain": {  
                "type": "string",  
                "description": "URL домена", 
            },
        }, 
        "required": ["api_key", "first_name", "last_name", "organization_name", "domain"],  
    },  
},

Проверка компании по данным ФНС

Функция check_company_fns принимает два обязательных параметра: req (ОГРН или ИНН компании) и key (ключ доступа к API).

{  
    "name": "check_company_fns",  
    "description": "Проверка компании по данным ФНС России. Если в ответе функции есть слово `Позитив`, то нужно ответить так: `Положительная репутация`, иначе нужно ответить: `Отрицательная репутация`",  
    "parameters": {  
        "type": "object",  
        "properties": { 
            "req": {  
                "type": "string",  
                "description": "ОГРН или ИНН компании",  
            }, 
            "key": {  
                "type": "string",  
                "description": "Ваш ключ доступа к API", 
            }, 
        }, 
        "required": ["req", "key"],  
    },  
},

Получение товаров из категории на сайте Bitrix24

Получение товаров из категории на сайте Bitrix.

Для работы функции создайте в корне сайта файл api_products.php со следующим кодом:

<?php
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

// Проверка, что запрос является POST
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    die(json_encode(array("error" => "Only POST requests are allowed")));
}

// Подключение необходимых модулей
CModule::IncludeModule("iblock");

// Получение параметров из POST-запроса
$postData = json_decode(file_get_contents('php://input'), true);

$site_url = $postData['site_url'] ?? null;
$searchName = $postData['name'] ?? '';
$categoryId = $postData['category_id'] ?? null;
$minPrice = $postData['min_price'] ?? null;
$maxPrice = $postData['max_price'] ?? null;

// Формирование фильтра
$arFilter = array(
    "IBLOCK_ID" => 2,
    "ACTIVE" => "Y"
);

if (!empty($searchName)) {
    $arFilter["%NAME"] = $searchName;
}

if ($categoryId) {
    $arFilter["SECTION_ID"] = $categoryId;
    $arFilter["INCLUDE_SUBSECTIONS"] = "Y";
}

// Выборка товаров
//$arSelect = array("ID", "NAME", "DETAIL_PAGE_URL", "PREVIEW_PICTURE", "PROPERTY_PRICE", "CATALOG_QUANTITY");
$arSelect = array("*", "PROPERTY_*");
$arResult = array();

$res = CIBlockElement::GetList(array(), $arFilter, false, array("nPageSize" => 50), $arSelect);

while($ob = $res->GetNextElement()) {
    $arFields = $ob->GetFields();
	$arProps = $ob->GetProperties();
    $imageUrl = CFile::GetPath($arFields["DETAIL_PICTURE"]);

	$arFilter = array("PRODUCT_ID" => $arFields["ID"]);
    $price = CPrice::GetList(array(), $arFilter)->Fetch();
    $productPrice = $price["PRICE"];

	if ($minPrice !== null) {
		if ($productPrice < $minPrice) {
			continue;
		}
	}
	
	if ($maxPrice !== null) {
		if ($productPrice > $maxPrice) {
			continue;
		}
	}

    // Проверяем, начинается ли URL с "/upload/"
    if (strpos($imageUrl, '/upload/') === 0) {
        $imageUrl = $site_url . $imageUrl;
    }
    
    $arResult[] = array(
		"name" => $arFields["NAME"],
		"price" => $productPrice,
		"url" => $site_url . $arFields["DETAIL_PAGE_URL"],
		"details" => $arFields["DETAIL_TEXT"],
		"image_url" => $imageUrl
    );
}

// Вывод результата в формате JSON
header('Content-Type: application/json');
echo json_encode($arResult);

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php");
?>

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

{  
    "name": "get_products_bitrix",  
    "description": "Получить товары с сайта на Битрикс по заданным параметрам",  
    "parameters": {  
        "type": "object",  
        "properties": { 
            "site_url": {  
                "type": "string",  
                "description": "URL сайта для поиска товаров без `/` в конце",  
            }, 
            "paraments": {  
                "type": "string",  
                "description": """
                Параметры поиска в виде: `name:id:min_price:max_price:limit##name:id:min_price:max_price:limit##`
                `name` - Название товара (может быть прочерком `-`)
                `nacategory_idme` - ID категории товара
                `min_price` - Минимальная цена товара
                `max_price` - Максимальная цена товара
                `limit` - Сколько товаров должно быть в ответе. По умолчанию 10
                """,  
            }, 
        }, 
        "required": ["site_url", "paraments"],  
    },  
},

Получение товаров

Получение товаров из категории на сайте Webasyst (Shop-Script)

Получение товаров из категории на сайте Webasyst (Shop-Script).

Для работы требуется создать в корне сайта файл get_products.php со следующим кодом:

<?php

// Подключение к Webasyst
require_once($_SERVER['DOCUMENT_ROOT'].'/wa-config/SystemConfig.class.php');
waSystem::getInstance(null, new waSystemConfig());

// Инициализация приложения Shop
wa('shop');

// Функция для получения товаров из категории
function getProductsByCategory($category_id, $limit = 10, $offset = 0) {
    $collection = new shopProductsCollection('category/'.$category_id);
    $products = $collection->getProducts('*', $offset, $limit);
    
    $result = array();
    foreach ($products as $product) {
        // Получаем полный URL изображения
        $image_url = '';
        if ($product['image_id']) {
            $image = shopImage::getById($product['image_id']);
            if ($image) {
                $image_url = $image->getUrl('thumb', true); // true для получения абсолютного URL
            }
        }
        
        $result[] = array(
            'id' => $product['id'],
            'name' => $product['name'],
            'price' => $product['price'],
            'description' => $product['description'],
            'image_url' => $image_url,
        );
    }
    
    return $result;
}

// Обработка запроса
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
    $category_id = isset($_GET['category_id']) ? intval($_GET['category_id']) : 0;
    $limit = isset($_GET['limit']) ? intval($_GET['limit']) : 10;
    $offset = isset($_GET['offset']) ? intval($_GET['offset']) : 0;
    
    if ($category_id > 0) {
        $products = getProductsByCategory($category_id, $limit, $offset);
        
        header('Content-Type: application/json');
        echo json_encode(array(
            'status' => 'success',
            'data' => $products
        ));
    } else {
        header('HTTP/1.1 400 Bad Request');
        echo json_encode(array(
            'status' => 'error',
            'message' => 'Invalid category ID'
        ));
    }
} else {
    header('HTTP/1.1 405 Method Not Allowed');
    echo json_encode(array(
        'status' => 'error',
        'message' => 'Method not allowed'
    ));
}
?>
{  
    "name": "get_products_webasyst",  
    "description": "Получить список товаров с сайта Webasyst по заданной категории",  
    "parameters": {  
        "type": "object",  
        "properties": { 
            "site_url": {  
                "type": "string",  
                "description": "URL сайта без `/` в конце",  
            }, 
            "category_id": {  
                "type": "integer",  
                "description": "ID категории товаров",  
            }, 
            "limit": {  
                "type": "integer",  
                "description": "Количество товаров для получения",  
            }, 
            "offset": {  
                "type": "integer",  
                "description": "Смещение для пагинации",  
            }, 
        }, 
        "required": ["site_url", "category_id", "limit", "offset"],  
    },  
},

Получение товаров из категории на сайте WordPress

Получение товаров из категории на сайте WordPress.

Для работы функции добавьте в файл functions.php вот этот код:

add_action('rest_api_init', function () {
    register_rest_route('myshop/v1', '/products', array(
        'methods' => 'GET',
        'callback' => 'get_products_info',
        'permission_callback' => '__return_true'
    ));
});
function get_products_info($request) {
    $category = $request->get_param('category');
    $args = array(
        'status' => 'publish',
        'limit' => -1
    );
    if ($category) {
        $args['category'] = array($category);
    }
    $products = wc_get_products($args);
    $data = array();
    foreach ($products as $product) {
        $data[] = array(
            'id' => $product->get_id(),
            'name' => $product->get_name(),
            'price' => $product->get_price(),
            'regular_price' => $product->get_regular_price(),
            'sale_price' => $product->get_sale_price(),
            'stock_status' => $product->get_stock_status(),
            'stock_quantity' => $product->get_stock_quantity(),
            'categories' => wp_list_pluck($product->get_category_ids(), 'name'),
            'permalink' => get_permalink($product->get_id()),
            'image_url' => wp_get_attachment_url($product->get_image_id()),
        );
    }
    return new WP_REST_Response($data, 200);
}
{  
    "name": "get_products_from_wordpress",  
    "description": "Получить товары из категории на сайте WordPress",  
    "parameters": {  
        "type": "object",  
        "properties": { 
            "category": {  
                "type": "string",  
                "description": "Название категории товаров", 
            }, 
            "site_url": {  
                "type": "string",  
                "description": "Ссылка на сайт с WordPress без `/` в конце", 
            }, 
        }, 
        "required": ["category", "site_url"],  
    },  
},

Дополнительные функции

Создание лендинга на Bootstrap

Создание лендинга на Bootstrap

{
    "name": "generate_landing_page",
    "description": "Генерация одностраничного сайта",
    "parameters": {
        "type": "object",
        "properties": {
            "user_data": {
                "type": "string",
                "description": "Данные для сайта",
            },
            "user_comments": {
                "type": "string",
                "description": "Любые пожелания пользователя к сайту. Может быть пустым.",
            },
        },
        "required": ["user_data", "user_comments"]
    },
},

Оплата в диалоге

Функция генерирует ссылку и QR-код на оплату внутри диалога. Будет работать только при настроенной интеграции с платежной системой.

{ 
    "name": "get_payment_link", 
    "description": "Payment link generator", 
    "parameters": { 
        "type": "object", 
        "properties": { 
            "cost": { 
                "type": "integer", 
                "description": "Amount due", 
            }, 
        }, 
        "required": ["cost"], 
    }, 
},

Last updated