Saltar para a documentação
TypeScript

Automações

`automations.list`, `get`, `create`, `update`, `publish`, `pause`, `resume`, `archive`, `duplicate`, `delete`, `sendTest`, `stats`, `listVersions`, `restoreVersion`, `listStarters`, `listEnrollments`, `getEnrollment`, `enroll` e `exitEnrollment`, com `events.send`, `sendBatch` e `listNames`.

Todos os métodos

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)

Uma automação mantém uma definition de rascunho e a versão published que é executada. update altera o rascunho e as definições, e publish fixa o rascunho como a versão seguinte e ativa a automação. problems diz o que ainda impede um rascunho de ser publicado, e expectedUpdatedAt recusa com 409 version_conflict uma gravação que sobreporia a de outra pessoa.

Ler requer automations:read e alterar requer automations:write. publish, resume e sendTest requerem também emails:send. events.send e events.sendBatch requerem contacts:write, e contacts.listEvents requer contacts:read. delete pede um código de verificação a um token de acesso OAuth, e nunca a uma chave de API.

events.sendBatch aceita até 100 eventos e nunca lança uma exceção por um evento inválido: a resposta lista accepted e failed, cada um com o index do evento no array que enviou.