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

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

`automations.list`, `get`, `create`, `update`, `publish`, `pause`, `resume`, `archive`, `duplicate`, `delete`, `sendTest`, `stats`, `listVersions`, `restoreVersion`, `listStarters`, `listEnrollments`, `getEnrollment`, `enroll` и `exitEnrollment`, а также `events.send`, `sendBatch` и `listNames`.

Все методы

automations.ts
const automation = await openemail.automations.create({  name: 'Welcome series',  starter: 'welcome-series',  settings: { timezone: 'Europe/London' },}) const saved = await openemail.automations.update(automation.id, {  definition: { ...automation.definition, trigger: { kind: 'event', eventName: 'trial.started', filters: [] } },  expectedUpdatedAt: automation.updatedAt,}) if (saved.problems.some((problem) => problem.blocking)) throw new Error(saved.problems[0]?.message) await openemail.automations.sendTest(saved.id, { stepKey: saved.definition.entry ?? '' })const live = await openemail.automations.publish(saved.id) const sent = await openemail.events.send(  { name: 'trial.started', email: '[email protected]', properties: { plan: 'starter' }, createContact: true },  { idempotencyKey: 'trial:[email protected]' },) for await (const enrollment of openemail.automations.iterateEnrollments(live.id, { status: 'active' })) {  if (enrollment.heldFor) console.log(enrollment.contact.email, enrollment.heldFor)} const stats = await openemail.automations.stats(live.id)const history = await openemail.contacts.listEvents('[email protected]', { name: 'trial.started' }) await openemail.automations.pause(live.id)await openemail.automations.resume(live.id) console.log(sent.enrolled, stats.totals.entered, history.items.length)

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

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

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