Saltar para a documentação
Ruby

Automações

`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` e `exit_enrollment`, com `events.send`, `send_batch` e `list_names`.

Todos os métodos

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

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 send_test requerem também emails:send. events.send e events.send_batch requerem contacts:write, e contacts.list_events 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.send_batch 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 na lista que enviou.

attributes num contacto guarda os seus campos personalizados, e uma automação lê um deles como attributes.<key>.