Использование API для автоматизаций
Клиент trigger предоставляет методы для работы с автоматизациями.
Методы API для работы с автоматизациями включают:
-
Получение информации — извлечение данных об одной или нескольких автоматизациях.
-
Управление автоматизациями — создание новых автоматизаций с триггерами разных типов (Расписание, Событие триггера, Вебхук), обновление существующих автоматизаций, их включение и отключение.
Методы возвращают следующие данные об автоматизации:
-
id: идентификатор; -
name: название; -
created_at: дата создания; -
created_by: пользователь, создавший автоматизацию; -
description: описание (если указано); -
expression: выражение, задающее условие запуска (если применимо); -
integration_id: идентификатор интеграции; -
job_tag: группа воркеров, на которых выполняется запуск (если указан); -
job_timeout: таймаут воркеров (если применимо); -
org_id: идентификатор организации; -
overlap: поведение при уже выполняемом плейбуке или скрипте (если применимо):-
allow_concurrent— разрешить параллельное выполнение; -
skip_if_running— пропускать запуск, если плейбук или скрипт уже выполняется;
-
-
payload_id: идентификатор запускаемого плейбука или скрипта; -
payload_args: аргументы плейбука или скрипта; -
repeat_on_error: настройки повторного запуска скрипта при ошибке:-
rate: количество повторов:-
never— без повторов; -
retries— повторять ограниченное число раз; -
infinite— постоянно повторять;
-
-
retries: число повторов (если указано); -
delay: интервал повторов;
-
-
status: статус:-
enabled— включен; -
disabled— выключен;
-
-
trigger_data: данные автоматизации; -
type: тип триггера:-
schedule— Расписание; -
event— Событие; -
webhook— Вебхук;
-
-
updated_at: время последнего обновления; -
updated_by: пользователь, последним изменивший автоматизацию.
Создание автоматизаций
| Чтобы предоставить боту необходимые разрешения для запуска автоматизации, используйте методы для работы с ролями. |
Создание автоматизации любого типа (create)
Метод используется для создания автоматизации с триггером любого типа. Тип и настройки запуска задаются с помощью параметров.
create({
description: <description>, // string | undefined
expression: <expression>,
integrationId: <integration_id>, // string
jobTag: <job_tag>, // string | undefined
jobTimeout <job_timeout>, // number | undefined
name: <name>, // string
orgId: <org_id>, // string
overlap: {
policy: <overlap_policy> // 'allow_concurrent' | 'skip_if_running'
}
payloadArgs: <payload_args>, // string | undefined
payloadId: <payload_id>, // string
repeatOnError: {
delay: {
unit: <unit>, // Enum
value: <value> // number
}
rate: <repetition_rate>, // Enum
retries: <retries> // number | undefined
}
status: <status>, // 'enabled' | 'disabled'
triggerData: {
elements: <trigger_data> // Map<string, string>
}
})
create(
description=<description>, # str | None
expression=<expression>,
integration_id=<integration_id>, # str
job_tag=<job_tag>, # str | None
job_timeout=<job_timeout>, # int | None
name=<name>, # str
org_id=<org_id>, # str
overlap=Overlap(
policy=<overlap_policy> # 'allow_concurrent' | 'skip_if_running'
)
payload_args=<payload_args>, # str | None
payload_id=<payload_id>, # str
repeat_on_error=RepeatOnError(
delay=Delay(<unit>, <value>)
rate=<repetition_rate>, # Enum
retries=<retries> # int | None
)
status=<status>, # 'enabled' | 'disabled'
trigger_data=TriggerData(
elements=<trigger_data> # dict[str, str]
)
)
Параметры метода включают в себя:
-
<description>(необязательный): описание автоматизации (строка); -
<expression>: выражение, задающее условие запуска; -
<integration_id>: идентификатор интеграции (строка); -
<job_tag>(необязательный): группа воркеров, на которых выполняется запуск (строка); -
<job_timeout>(необязательный): таймаут воркеров (число); -
<name>: название (строка); -
<org_id: идентификатор организации (строка); -
<overlap>(необязательный): поведение при уже выполняемом плейбуке или скрипте:-
'allow_concurrent'— разрешить параллельное выполнение; -
'skip_if_running'— пропускать запуск, если плейбук или скрипт уже выполняется;
-
-
<payload_args>(необязательный): аргументы плейбука или скрипта (строка); -
<payload_id>: идентификатор запускаемого плейбука или скрипта (строка); -
настройки повторного запуска скрипта при ошибке (необязательный блок):
-
<rate>: количество повторов:-
never— без повторов; -
retries— повторять ограниченное число раз; -
infinite— постоянно повторять;
-
-
<retries>(необязательный): число повторов (число); -
интервал повторов:
-
<unit>: единицы времени:'second','minute','hour','day','week','month','quarter','year'; -
<value>: число единиц времени (число);
-
-
-
<status>: статус:-
enabled— включен; -
disabled— выключен;
-
-
<trigger_data>: данные автоматизации (коллекция "ключ — значение").
Выражение, задающее условие срабатывания триггера
-
TypeScript
-
Python
-
Тип Расписание:
{ Schedule: { cron: <cron>, // string time_period: { from: <from>, // Date | undefined to: <to> // Date | undefined }, timezone: <timezone> // string | undefined } } -
Тип Событие:
{ Event: { event: <event>, // string module: <module>, // string query: <query> // string | undefined } } -
Тип Вебхук:
{ Webhook: { bot_id: <bot_id>, // string webhook_id: <webhook_id> // string } }
-
Тип Расписание:
ScheduleExpression( cron=<cron>, # str time_period=TimePeriodOptional( from=<from>, # datetime | None to=<to> # datetime | None ), timezone=<timezone> # str | None } -
Тип Событие:
EventExpression( event=<event>, # str module=<module>, # str query=<query> # str | None } -
Тип Вебхук:
WebhookExpression( bot_id=<bot_id>, # str webhook_id=<webhook_id> # str )
Здесь:
-
<cron>: выражение, использующее синтаксис cron и задающее время запуска автоматизации по расписанию (строка).Формат выражения cron:
<seconds> <minutes> <hours> <day_of_month> <month> <day_of_week>Здесь:
-
<seconds>— секунды от 0 до 59; -
<minutes>— минуты от 0 до 59; -
<hours>— часы от 0 до 23; -
<day_of_month>— числа месяца от 1 до 31; -
<month>— номера месяцев от 1 до 12; -
<day_of_week>— номера дней недели от 0 до 6, где0— воскресенье.
Используются следующие символы:
-
*— любое допустимое значение поля; -
?— любое допустимое значение числа месяца или дня недели; -
,— разделитель в списке значений; -
-— диапазон значений; -
/— значение шага.
Примеры настроек cron-выражения
-
Запускать каждые 20 минут с 8 до 18 часов с понедельника по пятницу:
0 */20 8-18 * * 1-5 -
Запускать 1 января, 1 апреля, 1 июля и 1 октября в 2:00:00:
0 0 2 1 1,4,7,10 * -
Запускать в 12:00:00 ежедневно:
0 0 12 * * ?
-
-
<from>(необязательный): начало действия расписания (дата и время); -
<to>(необязательный): окончание действия расписания (дата и время); -
<timezone>(необязательный): часовой пояс, в котором настраивается расписание (строка); -
<event>: название события, при наступлении которого будет запущен скрипт или плейбук (строка); -
<module>: название модуля, создающего событие (строка); -
<query>(необязательный): запрос к объектам домена, в котором должно наступить событие (строка); -
<bot_id>: идентификатор системного бота (строка); -
<webhook_id>: идентификатор вебхука (строка).
Примеры создания автоматизации
Пример скрипта с create в TypeScript (Расписание)
id: create_trigger_schedule_ts
name: Создание автоматизации типа Расписание
version: 0.0.1
type: script
source: !deno |
import * as sdk from '@playbooks/sdk'
const ORG_ID = "00000000-0000-0000-0000-000000000000";
const INTEGRATION_ID = "testIntegrationSDK";
const PAYLOAD_ID = "519d8b3f-91df-4be0-8898-515bc52b914c";
export async function main() {
try {
const scheduleTrigger = await sdk.trigger.create({
name: "scheduleTriggerSDK",
orgId: ORG_ID,
integrationId: INTEGRATION_ID,
payloadId: PAYLOAD_ID,
jobTag: "all",
status: "enabled",
expression: {
Schedule: {
cron: "* */5 * * * *",
timezone: "UTC"
}
}
});
console.log("ID:", scheduleTrigger.id);
console.log(" Название:", scheduleTrigger.name);
console.log(" Тип:", scheduleTrigger.type);
console.log(" Статус:", scheduleTrigger.status);
} catch (e) {
console.log('Ошибка при создании автоматизации:', e);
if (e instanceof Error) {
console.log('Сообщение ошибки:', e.message);
console.log('Стек вызовов:', e.stack);
} else {
console.log('Полная ошибка:', JSON.stringify(e, null, 2));
}
}
}
Пример скрипта с create в Python (Расписание)
id: create_trigger_schedule_py
name: Создание автоматизации с триггером типа Расписание
version: 0.0.1
type: script
source: !py |
from playbooks.trigger import TriggerClient, Status, ScheduleExpression
from datetime import timezone
def main():
ORG_ID = '00000000-0000-0000-0000-000000000000'
INTEGRATION_ID = 'testIntegrationSDK'
PAYLOAD_ID = '519d8b3f-91df-4be0-8898-515bc52b914c'
try:
schedule_trigger = client.create(
name='scheduleTriggerSDK',
payload_id=PAYLOAD_ID,
org_id=ORG_ID,
job_tag='all',
status=Status.Enabled,
integration_id=INTEGRATION_ID,
expression=ScheduleExpression(cron='0 */5 * * * *', timezone='UTC')
)
print(f"ID: {schedule_trigger.id}")
print(f" Название: {schedule_trigger.name}")
print(f" Тип: {schedule_trigger.type}")
print(f" Статус: {schedule_trigger.status}")
except Exception as e:
print(f"Ошибка при создании автоматизации: {e}")
Пример скрипта с create в TypeScript (Событие)
id: create_trigger_event_ts
name: Создание автоматизации с триггером типа Событие
version: 0.0.1
type: script
source: !deno |
import * as sdk from '@playbooks/sdk'
const ORG_ID = "00000000-0000-0000-0000-000000000000";
const INTEGRATION_ID = "testIntegrationSDK";
const PAYLOAD_ID = "519d8b3f-91df-4be0-8898-515bc52b914c";
export async function main() {
try {
const eventDomainTrigger = await sdk.trigger.create({
name: "eventTriggerSDK",
orgId: ORG_ID,
integrationId: INTEGRATION_ID,
payloadId: PAYLOAD_ID,
jobTag: "all",
status: "enabled",
expression: {
Event: {
module: "Example.Module",
event: "object.delete.example.com.allAttributes",
query: ""
}
}
});
console.log("ID:", eventDomainTrigger.id);
console.log(" Название:", eventDomainTrigger.name);
console.log(" Тип:", eventDomainTrigger.type);
console.log(" Статус:", eventDomainTrigger.status);
} catch (e) {
console.log('Ошибка при создании автоматизаций:', e);
if (e instanceof Error) {
console.log('Сообщение ошибки:', e.message);
console.log('Стек вызовов:', e.stack);
} else {
console.log('Полная ошибка:', JSON.stringify(e, null, 2));
}
}
}
Пример скрипта с create в Python (Событие)
id: create_trigger_event_py
name: Создание автоматизации с триггером типа Событие
version: 0.0.1
type: script
source: !py |
from playbooks.trigger import TriggerClient, Status, EventExpression
def main():
ORG_ID = '00000000-0000-0000-0000-000000000000'
INTEGRATION_ID = 'testIntegrationSDK'
PAYLOAD_ID = '519d8b3f-91df-4be0-8898-515bc52b914c'
try:
event_trigger = client.create(
name='eventTriggerSDK',
description='Event trigger created via create()',
payload_id=PAYLOAD_ID,
org_id=ORG_ID,
job_tag='all',
status=Status.Enabled,
integration_id=INTEGRATION_ID,
expression=EventExpression(module='Example.Module', event='object.delete.example.com.allAttributes', query='')
)
print(f"ID: {schedule_trigger.id}")
print(f" Название: {schedule_trigger.name}")
print(f" Тип: {schedule_trigger.type}")
print(f" Статус: {schedule_trigger.status}")
except Exception as e:
print(f"Ошибка при создании автоматизации: {e}")
Пример скрипта с create в TypeScript (Вебхук)
id: create_trigger_webhook_ts
name: Создание автоматизации с триггером типа Вебхук
version: 0.0.1
type: script
source: !deno |
import * as sdk from '@playbooks/sdk'
const ORG_ID = "00000000-0000-0000-0000-000000000000";
const INTEGRATION_ID = "testIntegrationSDK";
const PAYLOAD_ID = "519d8b3f-91df-4be0-8898-515bc52b914c";
const BOT_ID = 'e277c0b1-c7e5-4713-87a7-023304c5ae2a';
const WEBHOOK_ID = 'r1a9b8ef';
export async function main() {
try {
const webhookTrigger = await sdk.trigger.create({
name: "webhookTriggerSDK",
orgId: ORG_ID,
integrationId: INTEGRATION_ID,
payloadId: PAYLOAD_ID,
jobTag: "all",
status: "enabled",
expression: {
Webhook: {
bot_id: BOT_ID,
webhook_id: WEBHOOK_ID
}
}
});
console.log("ID:", webhookTrigger.id);
console.log(" Название:", webhookTrigger.name);
console.log(" Тип:", webhookTrigger.type);
console.log(" Статус:", webhookTrigger.status);
} catch (e) {
console.log('Ошибка при создании автоматизаций:', e);
if (e instanceof Error) {
console.log('Сообщение ошибки:', e.message);
console.log('Стек вызовов:', e.stack);
} else {
console.log('Полная ошибка:', JSON.stringify(e, null, 2));
}
}
}
Пример скрипта с create в Python (Вебхук)
id: create_trigger_webhook_py
name: Создание автоматизации с триггером типа Вебхук
version: 0.0.1
type: script
source: !py |
from playbooks.trigger import TriggerClient, Status, WebhookExpression
def main():
ORG_ID = '00000000-0000-0000-0000-000000000000'
INTEGRATION_ID = 'testIntegrationSDK'
PAYLOAD_ID = '519d8b3f-91df-4be0-8898-515bc52b914c'
BOT_ID = 'e277c0b1-c7e5-4713-87a7-023304c5ae2a';
WEBHOOK_ID = 'r1a9b8ef';
try:
webhook_trigger = client.create(
name='webhookTriggerSDK',
payload_id=PAYLOAD_ID,
org_id=ORG_ID,
job_tag='all',
status=Status.Enabled,
integration_id=INTEGRATION_ID,
expression=WebhookExpression(webhook_id=WEBHOOK_ID, bot_id=BOT_ID)
)
print(f"ID: {schedule_trigger.id}")
print(f" Название: {schedule_trigger.name}")
print(f" Тип: {schedule_trigger.type}")
print(f" Статус: {schedule_trigger.status}")
except Exception as e:
print(f"Ошибка при создании автоматизации: {e}")
Создание автоматизации с триггером типа Расписание (schedule)
Метод используется для создания автоматизации с триггером типа Расписание. Настройки запуска задаются с помощью параметров.
schedule({
cron: <cron>, // string
description: <description>, // string | undefined
from: <from>, // Date | undefined
integrationId: <integration_id>, // string
jobTag: <job_tag>, // string | undefined
name: <name>, // string
orgId: <org_id>, // string
payloadArgs: <payload_args>, // string | undefined
payloadId: <payload_id>, // string
status: <status>, // 'enabled' | 'disabled'
timezone: <timezone>, // string | undefined
to: <to> // Date | undefined
})
schedule(
cron=<cron>, # str
description=<description>, # str | None
from=<from>, # datetime | None
integration_id=<integration_id>, # str
job_tag=<job_tag>, # str | None
name=<name>, # str
org_id=<org_id>, # str
payload_args=<payload_args>, # str | None
payload_id=<payload_id>, # str
status=<status>, # 'enabled' | 'disabled'
timezone=<timezone>, # str | None
to=<to> # datetime | None
)
Параметры метода включают в себя:
-
<cron>: выражение, использующее синтаксис cron и задающее время запуска автоматизации по расписанию (строка).Формат выражения cron:
<seconds> <minutes> <hours> <day_of_month> <month> <day_of_week>Здесь:
-
<seconds>— секунды от 0 до 59; -
<minutes>— минуты от 0 до 59; -
<hours>— часы от 0 до 23; -
<day_of_month>— числа месяца от 1 до 31; -
<month>— номера месяцев от 1 до 12; -
<day_of_week>— номера дней недели от 0 до 6, где0— воскресенье.
Используются следующие символы:
-
*— любое допустимое значение поля; -
?— любое допустимое значение числа месяца или дня недели; -
,— разделитель в списке значений; -
-— диапазон значений; -
/— значение шага.
Примеры настроек cron-выражения
-
Запускать каждые 20 минут с 8 до 18 часов с понедельника по пятницу:
0 */20 8-18 * * 1-5 -
Запускать 1 января, 1 апреля, 1 июля и 1 октября в 2:00:00:
0 0 2 1 1,4,7,10 * -
Запускать в 12:00:00 ежедневно:
0 0 12 * * ?
-
-
<description>(необязательный): описание автоматизации (строка); -
<from>(необязательный): начало действия расписания (дата и время); -
<integration_id>: идентификатор интеграции (строка); -
<job_tag>(необязательный): группа воркеров, на которых выполняется запуск (строка); -
<name>: название (строка); -
<org_id: идентификатор организации (строка); -
<payload_args>(необязательный): аргументы плейбука или скрипта (строка); -
<payload_id>: идентификатор запускаемого плейбука или скрипта (строка); -
<status>: статус:-
enabled— включен; -
disabled— выключен;
-
-
<timezone>(необязательный): часовой пояс, в котором настраивается расписание (строка); -
<to>(необязательный): окончание действия расписания (дата и время).
Примеры создания автоматизации с триггером типа Расписание
Пример скрипта с schedule в TypeScript
id: schedule_trigger_ts
name: Создание автоматизации с триггером типа Расписание
version: 0.0.1
type: script
source: !deno |
import * as sdk from '@playbooks/sdk'
const ORG_ID = "00000000-0000-0000-0000-000000000000";
const INTEGRATION_ID = "testIntegrationSDK";
const PAYLOAD_ID = "519d8b3f-91df-4be0-8898-515bc52b914c";
export async function main() {
try {
const scheduleTrigger = await sdk.trigger.schedule({
name: "scheduleTriggerSDK",
orgId: ORG_ID,
integrationId: INTEGRATION_ID,
payloadId: PAYLOAD_ID,
jobTag: "all",
cron: "* */5 * * * *",
});
console.log("ID:", scheduleTrigger.id);
console.log(" Название:", scheduleTrigger.name);
console.log(" Тип:", scheduleTrigger.type);
console.log(" Статус:", scheduleTrigger.status);
} catch (e) {
console.log('Ошибка при создании автоматизации:', e);
if (e instanceof Error) {
console.log('Сообщение ошибки:', e.message);
console.log('Стек вызовов:', e.stack);
} else {
console.log('Полная ошибка:', JSON.stringify(e, null, 2));
}
}
}
Пример скрипта с schedule в Python
id: schedule_trigger_py
name: Создание автоматизации с триггером типа Расписание
version: 0.0.1
type: script
source: !py |
from playbooks.trigger import TriggerClient, Status
from datetime import timezone
def main():
ORG_ID = '00000000-0000-0000-0000-000000000000'
INTEGRATION_ID = 'testIntegrationSDK'
PAYLOAD_ID = '519d8b3f-91df-4be0-8898-515bc52b914c'
try:
schedule_trigger = client.schedule(
name='scheduleTriggerSDK',
payload_id=PAYLOAD_ID,
org_id=ORG_ID,
job_tag='all',
status=Status.Enabled,
integration_id=INTEGRATION_ID,
cron='0 */5 * * * *'
)
print(f"ID: {schedule_trigger.id}")
print(f" Название: {schedule_trigger.name}")
print(f" Тип: {schedule_trigger.type}")
print(f" Статус: {schedule_trigger.status}")
except Exception as e:
print(f"Ошибка при создании автоматизации: {e}")
Создание автоматизации с триггером типа Событие (event)
Метод используется для создания автоматизации с триггером типа Событие. Настройки запуска задаются с помощью параметров.
event({
description: <description>, // string | undefined
event: <event>, // string
integrationId: <integration_id>, // string
jobTag: <job_tag>, // string | undefined
module: <module>, // string
name: <name>, // string
orgId: <org_id>, // string
payloadArgs: <payload_args>, // string | undefined
payloadId: <payload_id>, // string
query: <query>, // string | undefined
status: <status> // 'enabled' | 'disabled'
})
event(
description=<description>, # str | None
event=<event>, # str
integration_id=<integration_id>, # str
job_tag=<job_tag>, # str | None
module=<module>, # str
name=<name>, # str
org_id=<org_id>, # str
payload_args=<payload_args>, # str | None
payload_id=<payload_id>, # str
query=<query>, # str | None
status=<status> # 'enabled' | 'disabled'
)
Параметры метода включают в себя:
-
<description>(необязательный): описание автоматизации (строка); -
<event>: название события, при наступлении которого будет запущен скрипт или плейбук (строка); -
<integration_id>: идентификатор интеграции (строка); -
<job_tag>(необязательный): группа воркеров, на которых выполняется запуск (строка); -
<job_timeout>(необязательный): таймаут воркеров (число); -
<module>: название модуля, создающего событие (строка); -
<name>: название (строка); -
<org_id: идентификатор организации (строка); -
<payload_args>(необязательный): аргументы плейбука или скрипта (строка); -
<payload_id>: идентификатор запускаемого плейбука или скрипта (строка); -
<query>(необязательный): запрос к объектам домена, в котором должно наступить событие (строка); -
<status>: статус:-
enabled— включен; -
disabled— выключен.
-
Примеры создания автоматизации с триггером типа Событие
Пример скрипта с event в TypeScript
id: event_trigger_ts
name: Создание автоматизации с триггером типа Событие
version: 0.0.1
type: script
source: !deno |
import * as sdk from '@playbooks/sdk'
const ORG_ID = "00000000-0000-0000-0000-000000000000";
const INTEGRATION_ID = "testIntegrationSDK";
const PAYLOAD_ID = "519d8b3f-91df-4be0-8898-515bc52b914c";
export async function main() {
try {
const eventDomainTrigger = await sdk.trigger.event({
name: "eventTriggerSDK",
orgId: ORG_ID,
integrationId: INTEGRATION_ID,
payloadId: PAYLOAD_ID,
jobTag: "all",
status: "enabled",
module: "Example.Module",
event: "object.delete.example.com.allAttributes",
query: ""
});
console.log("ID:", eventDomainTrigger.id);
console.log(" Название:", eventDomainTrigger.name);
console.log(" Тип:", eventDomainTrigger.type);
console.log(" Статус:", eventDomainTrigger.status);
} catch (e) {
console.log('Ошибка при создании автоматизаций:', e);
if (e instanceof Error) {
console.log('Сообщение ошибки:', e.message);
console.log('Стек вызовов:', e.stack);
} else {
console.log('Полная ошибка:', JSON.stringify(e, null, 2));
}
}
}
Пример скрипта с event в Python
id: event_trigger_py
name: Создание автоматизации с триггером типа Событие
version: 0.0.1
type: script
source: !py |
from playbooks.trigger import TriggerClient, Status, EventExpression
def main():
ORG_ID = '00000000-0000-0000-0000-000000000000'
INTEGRATION_ID = 'testIntegrationSDK'
PAYLOAD_ID = '519d8b3f-91df-4be0-8898-515bc52b914c'
try:
event_trigger = client.event(
name='eventTriggerSDK',
description='Event trigger created via create()',
payload_id=PAYLOAD_ID,
org_id=ORG_ID,
job_tag='all',
status=Status.Enabled,
integration_id=INTEGRATION_ID,
module='Example.Module',
event='object.delete.example.com.allAttributes',
query=''
)
print(f"ID: {schedule_trigger.id}")
print(f" Название: {schedule_trigger.name}")
print(f" Тип: {schedule_trigger.type}")
print(f" Статус: {schedule_trigger.status}")
except Exception as e:
print(f"Ошибка при создании автоматизации: {e}")
Создание автоматизации с триггером типа Вебхук (webhook)
Метод используется для создания автоматизации с триггером типа Вебхук. Настройки запуска задаются с помощью параметров.
webhook({
botId: <bot_id>, // string
description: <description>, // string | undefined
integrationId: <integration_id>, // string
jobTag: <job_tag>, // string | undefined
name: <name>, // string
orgId: <org_id>, // string
payloadArgs: <payload_args>, // string | undefined
payloadId: <payload_id>, // string
status: <status>, // 'enabled' | 'disabled'
webhookId: <webhook_id> // string
})
webhook(
bot_id=<bot_id>, # str
description=<description>, # str | None
integration_id=<integration_id>, # str
job_tag=<job_tag>, # str | None
name=<name>, # str
org_id=<org_id>, # str
payload_args=<payload_args>, # str | None
payload_id=<payload_id>, # str
status=<status>, # 'enabled' | 'disabled'
webhook_id=<webhook_id> # str
)
Параметры метода включают в себя:
* <bot_id>: идентификатор системного бота (строка);
* <description> (необязательный): описание автоматизации (строка);
* <integration_id>: идентификатор интеграции (строка);
* <job_tag> (необязательный): группа воркеров, на которых выполняется запуск (строка);
* <name>: название (строка);
* <org_id: идентификатор организации (строка);
* <payload_args> (необязательный): аргументы плейбука или скрипта (строка);
* <payload_id>: идентификатор запускаемого плейбука или скрипта (строка);
* <status>: статус:
enabled — включен;
disabled — выключен;
* <webhook_id>: идентификатор вебхука (строка).
Примеры создания автоматизации с триггером типа Вебхук
Пример скрипта с webhook в TypeScript
id: webhook_trigger_ts
name: Создание автоматизации с триггером типа Вебхук
version: 0.0.1
type: script
source: !deno |
import * as sdk from '@playbooks/sdk'
const ORG_ID = "00000000-0000-0000-0000-000000000000";
const INTEGRATION_ID = "testIntegrationSDK";
const PAYLOAD_ID = "519d8b3f-91df-4be0-8898-515bc52b914c";
const BOT_ID = 'e277c0b1-c7e5-4713-87a7-023304c5ae2a';
const WEBHOOK_ID = 'r1a9b8ef';
export async function main() {
try {
const webhookTrigger = await sdk.trigger.webhook({
name: "webhookTriggerSDK",
orgId: ORG_ID,
integrationId: INTEGRATION_ID,
payloadId: PAYLOAD_ID,
jobTag: "all",
status: "enabled",
botId: BOT_ID,
webhookId: WEBHOOK_ID
});
console.log("ID:", webhookTrigger.id);
console.log(" Название:", webhookTrigger.name);
console.log(" Тип:", webhookTrigger.type);
console.log(" Статус:", webhookTrigger.status);
} catch (e) {
console.log('Ошибка при создании автоматизаций:', e);
if (e instanceof Error) {
console.log('Сообщение ошибки:', e.message);
console.log('Стек вызовов:', e.stack);
} else {
console.log('Полная ошибка:', JSON.stringify(e, null, 2));
}
}
}
Пример скрипта с webhook в Python
id: webhook_trigger_py
name: Создание автоматизации с триггером типа Вебхук
version: 0.0.1
type: script
source: !py |
from playbooks.trigger import TriggerClient, Status, WebhookExpression
def main():
ORG_ID = '00000000-0000-0000-0000-000000000000'
INTEGRATION_ID = 'testIntegrationSDK'
PAYLOAD_ID = '519d8b3f-91df-4be0-8898-515bc52b914c'
BOT_ID = 'e277c0b1-c7e5-4713-87a7-023304c5ae2a';
WEBHOOK_ID = 'r1a9b8ef';
try:
webhook_trigger = client.webhook(
name='webhookTriggerSDK',
payload_id=PAYLOAD_ID,
org_id=ORG_ID,
job_tag='all',
status=Status.Enabled,
integration_id=INTEGRATION_ID,
webhook_id=WEBHOOK_ID,
bot_id=BOT_ID
)
print(f"ID: {schedule_trigger.id}")
print(f" Название: {schedule_trigger.name}")
print(f" Тип: {schedule_trigger.type}")
print(f" Статус: {schedule_trigger.status}")
except Exception as e:
print(f"Ошибка при создании автоматизации: {e}")
Получение данных об автоматизации
Получение данных об автоматизации (get)
Метод используется для получения определенной автоматизации.
get в TypeScriptget({
id: <trigger_id> // string
})
get в Pythonget(
id=<trigger_id> # str
)
В методе используется параметр <trigger_id> — идентификатор автоматизации (строка).
Примеры получения данных об автоматизации
Пример скрипта с get в TypeScript
id: get_automation_ts
name: Получение информации об автоматизации
version: 0.0.1
type: script
source: !deno |
import * as sdk from '@playbooks/sdk'
export async function main() {
try {
const trigger_id = "6ed20147-f418-48d5-9068-bd3a2e9a550d";
// Получение автоматизации.
const trigger = await sdk.trigger.get({ id: trigger_id });
console.log("Автоматизация получена:");
console.log("ID:", trigger.id);
console.log("Название:", trigger.name);
console.log("Тип:", trigger.type);
console.log("Статус:", trigger.status);
console.log("Описание:", trigger.description);
console.log("Создана:", trigger.created_at);
console.log("Обновлена:", trigger.updated_at);
console.log("Payload ID:", trigger.payload_id);
console.log("Структура существующей автоматизации:");
console.log(JSON.stringify(trigger, null, 2));
if (trigger.expression) {
console.log("Expression структура:");
console.log(JSON.stringify(trigger.expression, null, 2));
console.log("Тип expression:", typeof trigger.expression);
console.log("Ключи expression:", Object.keys(trigger.expression));
}
} catch (e) {
console.log('Ошибка:', e);
}
}
Пример скрипта с get в Python
id: get_automation_py
name: Получение информации об автоматизации
version: 0.0.1
type: script
source: !py |
from playbooks.trigger import TriggerClient
def main():
try:
client = TriggerClient.initialize()
trigger_id = "6ed20147-f418-48d5-9068-bd3a2e9a550d"
trigger = client.get(id=trigger_id)
print("Автоматизация получена:")
print(f"ID: {trigger.id}")
print(f"Название: {trigger.name}")
print(f"Тип: {trigger.typ}")
print(f"Статус: {trigger.status}")
print(f"Описание: {trigger.description}")
print(f"Создана: {trigger.created_at}")
print(f"Обновлена: {trigger.updated_at}");
print(f"Payload ID: {trigger.payload_id}");
# Дополнительная информация из expression.
if hasattr(trigger, 'expression') and trigger.expression:
expr_type = type(trigger.expression).__name__
print(f"Expression: {expr_type}")
# Для триггера по расписанию выведем cron из expression.
if 'Schedule' in expr_type and hasattr(trigger.expression, 'cron'):
print(f"Cron: {trigger.expression.cron}")
except Exception as error:
print('Ошибка', error)
Получение списка автоматизаций (list)
Метод используется для получения отфильтрованного и отсортированного массива необходимых автоматизаций. Фильтры для уточнения запроса, порядок сортировки и количество выводимых результатов задаются с помощью параметров.
list({
filter: {
event: <event>, // string | undefined
query: <query>, // string | undefined
status: <status>, // string | undefined
types: <types> // string[] | undefined
},
sorting: {
order: <order_dir>, // 'asc' | 'desc'
orderBy: <order_rule>, // string
},
pagination: {
limit: <limit>, // number
offset: <offset>, // number | undefined
}
})
list(
filter=Filter(
event=<event>, # str | None
query=<query>, # str | None
status=<status>, # str | None
types=<types> # List[str] | None
),
sorting=Sorting(
Order.<order_dir>, # Desc | Asc
<order_rule> # str
),
pagination=Pagination(
<limit>, # int
<offset> # int | None
),
ref_fields=<reference_fields>, # List[str] | None
)
Параметры метода включают в себя:
-
настройки фильтрации списка (необязательный блок):
-
<query>(необязательный): запрос для поиска (строка); -
<status>(необязательный): статус автоматизации:-
'enabled'— включен; -
'disabled'— выключен;
-
-
<types>: тип триггера:-
'schedule— Расписание; -
'event'— Событие; -
'webhook'— Вебхук;
-
-
<event>(необязательный): тип события триггера:-
'cms_entity_object_create': создание объекта; -
'cms_entity_object_update': изменение объекта; -
'cms_entity_object_delete': удаление объекта; -
'custom': пользовательский;
-
-
-
настройки сортировки списка (необязательный блок):
-
<order_dir>: порядок сортировки ('asc'/Asc— по возрастанию или'desc'/Desc— по убыванию); -
<order_rule>: идентификатор одного из правил сортировки, определенного в полеsortingсущности (строка);
-
-
ограничение количества выводимых результатов (необязательный блок):
-
<limit>(обязателен, если ограничение указано): максимальное количество записей в ответе (число); -
<offset>(необязательный): порядковый номер первой записи, начиная с которой выводится ответ (число).
-
Примеры получения списка автоматизаций
Пример скрипта с list в TypeScript
id: list_id: get_automations_ts
name: Получение списка автоматизаций
version: 0.0.1
type: script
source: !deno |
import * as sdk from "@playbooks/sdk"
export async function main() {
try {
// Получаем список автоматизаций с ограничением количества и сортировкой.
const triggers = await sdk.trigger.list({
filter: {},
pagination: {
limit: 50,
offset: 0
},
sorting: {
order: "desc",
orderBy: "created_at"
}
});
console.log(`Найдено автоматизаций: ${triggers.length}`);
triggers.forEach((trigger, index) => {
console.log(`\n--- Автоматизация ${index + 1} ---`);
console.log("ID:", trigger.id);
console.log("Название:", trigger.name ?? "Без имени");
console.log("Тип:", trigger.type);
console.log("Статус:", trigger.status);
console.log("Создан:", trigger.created_at);
});
} catch (e) {
console.log('Ошибка:', e);
}
}
Пример скрипта с list в Python
id: list_automations_py
name: Получение списка автоматизаций
version: 0.0.1
type: script
source: !py |
from playbooks.trigger import TriggerClient
def main():
try:
client = TriggerClient.initialize()
triggers = client.list(
filter=Filter(),
pagination=Pagination(50, 0)
sorting=Sorting(Order.Desc, 'created_at')
print(f"Найдено автоматизаций: {len(triggers)}")
for idx, trigger in enumerate(triggers, start=1):
print(f"\n--- Автоматизация {idx} ---")
print("ID:", getattr(trigger, "id", "N/A"))
print("Имя:", getattr(trigger, "name", "Без имени"))
print("Type:", getattr(trigger, "type", "N/A"))
print("Status:", getattr(trigger, "status", "N/A"))
print("Created:", getattr(trigger, "created_at", "N/A"))
except Exception as e:
print(f"Ошибка: {e}")
Обновление автоматизации (update)
Метод используется для изменения настроек автоматизации с сохранением ее идентификатора.
update({
id: <trigger_id>, // string
fields: {
description: <description>, // string | undefined
expression: <expression>,
integrationId: <integration_id>, // string
jobTag: <job_tag>, // string | undefined
jobTimeout <job_timeout>, // number | undefined
name: <name>, // string | undefined
orgId: <org_id>, // string | undefined
overlap: {
policy: <overlap_policy> // 'allow_concurrent' | 'skip_if_running'
}
payloadArgs: <payload_args>, // string | undefined
payloadId: <payload_id>, // string | undefined
repeatOnError: {
delay: {
unit: <unit>, // Enum
value: <value> // number
}
rate: <repetition_rate>, // Enum
retries: <retries> // number | undefined
}
status: <status>, // 'enabled' | 'disabled' | undefined
triggerData: {
elements: <trigger_data> // Map<string, string>
}
})
update(
id=<trigger_id>, # str
fields=Fields(
description=<description>, # str | None
expression=<expression>,
integration_id=<integration_id>, # str
job_tag=<job_tag>, # str | None
job_timeout=<job_timeout>, # int | None
name=<name>, # str | None
org_id=<org_id>, # str | None
overlap=Overlap(
policy=<overlap_policy> # 'allow_concurrent' | 'skip_if_running'
)
payload_args=<payload_args>, # str | None
payload_id=<payload_id>, # str | None
repeat_on_error=RepeatOnError(
delay=Delay(<unit>, <value>)
rate=<repetition_rate>, # Enum
retries=<retries> # int | None
)
status=<status>, # 'enabled' | 'disabled' | None
trigger_data=TriggerData(
elements=<trigger_data> # dict[str, str]
)
)
Параметры метода включают в себя:
-
<trigger_id>: идентификатор автоматизации (строка); -
<description>(необязательный): описание автоматизации (строка); -
<expression>(необязательный блок): выражение, задающее условие запуска; -
<integration_id> (необязательный): идентификатор интеграции (строка); -
<job_tag>(необязательный): группа воркеров, на которых выполняется запуск (строка); -
<job_timeout>(необязательный): таймаут воркеров (число); -
<name>(необязательный): название (строка); -
<org_id(необязательный): идентификатор организации (строка); -
<overlap>(необязательный): поведение при уже выполняемом плейбуке или скрипте:-
'allow_concurrent'— разрешить параллельное выполнение; -
'skip_if_running'— пропускать запуск, если плейбук или скрипт уже выполняется;
-
-
<payload_args>(необязательный): аргументы плейбука или скрипта (строка); -
<payload_id>(необязательный): идентификатор запускаемого плейбука или скрипта (строка); -
настройки повторного запуска скрипта при ошибке (необязательный блок):
-
<rate>: количество повторов:-
never— без повторов; -
retries— повторять ограниченное число раз; -
infinite— постоянно повторять;
-
-
<retries>(необязательный): число повторов (число); -
интервал повторов:
-
<unit>: единицы времени:'second','minute','hour','day','week','month','quarter','year'; -
<value>: число единиц времени (число);
-
-
-
<status>(необязательный): статус:-
enabled— включен; -
disabled— выключен;
-
-
<trigger_data>(необязательный): данные автоматизации (коллекция "ключ — значение").
Примеры обновления автоматизации
Пример скрипта с update в TypeScript
id: update_automation_ts
name: Обновление автоматизации
version: 0.0.1
type: script
source: !deno |
import * as sdk from '@playbooks/sdk'
export async function main() {
try {
const existingTriggerId = "90b1950f-3db9-4b6e-940f-f3e1a667d06f";
const currentTrigger = await sdk.trigger.get({
id: existingTriggerId
});
console.log("Текущее состояние автоматизации:");
console.log("ID:", currentTrigger.id);
console.log("Название:", currentTrigger.name);
console.log("Integration ID:", currentTrigger.integration_id);
const updatedTrigger = await sdk.trigger.update({
id: existingTriggerId,
fields: {
name: "Новое название",
integrationId: "updateTriggerSDK"
}
});
console.log("Автоматизация обновлена:");
console.log("Название:", updatedTrigger.name);
console.log("Integration ID:", updatedTrigger.integration_id);
} catch (e) {
console.log('Ошибка обновления:', e);
}
}
Пример скрипта с update в Python
id: update_automation_py
name: Обновление автоматизации
version: 0.0.1
type: script
source: !py |
from playbooks.trigger import TriggerClient, Fields
def main():
try:
client = TriggerClient.initialize()
existing_trigger_id = "90b1950f-3db9-4b6e-940f-f3e1a667d06f"
current_trigger = client.get(id=existing_trigger_id)
print("Текущее состояние автоматизации:")
print(f"ID: {current_trigger.id}")
print(f"Название: {current_trigger.name}")
print(f"Integration ID: {current_trigger.integration_id}")
updated_trigger = client.update(
id=existing_trigger_id,
fields=Fields(
name="Новое название",
integration_id="updateTriggerSDK"
)
)
print("Автоматизация обновлена")
print(f"Название: {updated_trigger.name}")
print(f"Integration ID: {updated_trigger.integration_id}")
return {"status": "success"}
except Exception as e:
print(f"Ошибка: {e}")
return {"status": "error", "error": str(e)}
Включение автоматизации (enable)
Метод используется для включения автоматизации.
enable в TypeScriptenable({
id: <trigger_id> // string
})
enable в Pythonenable(
id=<trigger_id> # str
)
В методе используется параметр <trigger_id> — идентификатор автоматизации (строка).
Примеры включения автоматизации
Пример скрипта с get в TypeScript
id: enable_trigger_ts
name: Включение автоматизации
version: 0.0.1
type: script
source: !deno |
import * as sdk from '@playbooks/sdk'
export async function main() {
try {
const trigger_id = "6ed20147-f418-48d5-9068-bd3a2e9a550d";
const trigger = await sdk.trigger.enable({ id: trigger_id });
} catch (e) {
console.log('Ошибка:', e);
}
}
Пример скрипта с enable в Python
id: enable_trigger_py
name: Включение автоматизации
version: 0.0.1
type: script
source: !py |
from playbooks.trigger import TriggerClient
def main():
try:
client = TriggerClient.initialize()
trigger_id = "6ed20147-f418-48d5-9068-bd3a2e9a550d"
trigger = client.enable(id=trigger_id)
except Exception as error:
print('Ошибка', error)
Выключение автоматизации (disable)
Метод используется для выключения автоматизации.
disable в TypeScriptdisable({
id: <trigger_id> // string
})
enable в Pythondisable(
id=<trigger_id> # str
)
В методе используется параметр <trigger_id> — идентификатор автоматизации (строка).
Примеры выключения автоматизации
Пример скрипта с disable в TypeScript
id: disable_trigger_ts
name: Выключение автоматизации
version: 0.0.1
type: script
source: !deno |
import * as sdk from '@playbooks/sdk'
export async function main() {
try {
const trigger_id = "6ed20147-f418-48d5-9068-bd3a2e9a550d";
const trigger = await sdk.trigger.disable({ id: trigger_id });
} catch (e) {
console.log('Ошибка:', e);
}
}
Пример скрипта с disable в Python
id: disable_trigger_py
name: Выключение автоматизации
version: 0.0.1
type: script
source: !py |
from playbooks.trigger import TriggerClient
def main():
try:
client = TriggerClient.initialize()
trigger_id = "6ed20147-f418-48d5-9068-bd3a2e9a550d"
trigger = client.disable(id=trigger_id)
except Exception as error:
print('Ошибка', error)
Была ли полезна эта страница?