Перейти к документации
Ruby

Автоматизации

`automations.list`, `get`, `create`, `update`, `publish`, `pause`, `resume`, `archive`, `duplicate`, `delete`, `send_test`, `stats`, `list_versions`, `restore_version`, `list_starters`, `list_enrollments`, `get_enrollment`, `enroll` и `exit_enrollment`, а также `events.send`, `send_batch` и `list_names`.

Все методы

automations.rb
automation = client.automations.create(  name: "Welcome series",  starter: "welcome-series",  settings: {timezone: "Europe/London"}) trigger = {kind: "event", eventName: "trial.started", filters: []}saved = client.automations.update(  automation[:id],  definition: automation[:definition].to_h.merge(trigger: trigger),  expectedUpdatedAt: automation[:updatedAt]) blocking = saved[:problems].to_a.find { |problem| problem[:blocking] }raise blocking[:message] if blocking client.automations.send_test(saved[:id], stepKey: saved.dig(:definition, :entry))live = client.automations.publish(saved[:id]) sent = client.events.send(  name: "trial.started",  email: "[email protected]",  properties: {plan: "starter"},  createContact: true,  idempotency_key: "trial:[email protected]") client.automations.iterate_enrollments(live[:id], status: "active") do |enrollment|  puts "#{enrollment.dig(:contact, :email)} #{enrollment[:heldFor]}" if enrollment[:heldFor]end stats = client.automations.stats(live[:id])history = client.contacts.list_events("[email protected]", name: "trial.started") client.automations.pause(live[:id])client.automations.resume(live[:id]) puts sent[:enrolled], stats.dig(:totals, :entered), history.items.size

Автоматизация хранит definition черновика и работающую версию published. update меняет черновик и настройки, а publish фиксирует черновик как следующую версию и включает автоматизацию. problems говорит, что ещё мешает опубликовать черновик, а expectedUpdatedAt отклоняет с 409 version_conflict сохранение, которое перезаписало бы чужое.

Для чтения нужен automations:read, а для изменения automations:write. publish, resume и send_test требуют ещё и emails:send. events.send и events.send_batch требуют contacts:write, а contacts.list_events требует contacts:read. delete спрашивает код подтверждения у токена доступа OAuth и никогда не спрашивает у API-ключа.

events.send_batch принимает до 100 событий и никогда не выбрасывает исключение из-за одного плохого события: ответ перечисляет accepted и failed, каждое с index события в отправленном вами списке.

В attributes контакта лежат свои поля, а автоматизация читает любое из них как attributes.<key>.