Aller à la documentation
Ruby

Automatisations

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

Toutes les méthodes

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

Une automatisation garde une definition de brouillon et la version published qui s'exécute. update modifie le brouillon et les paramètres, et publish fige le brouillon comme prochaine version et active l'automatisation. problems dit ce qui empêche encore la publication d'un brouillon, et expectedUpdatedAt refuse avec 409 version_conflict un enregistrement qui écraserait celui de quelqu'un d'autre.

La lecture nécessite automations:read et la modification automations:write. publish, resume et send_test nécessitent aussi emails:send. events.send et events.send_batch nécessitent contacts:write, et contacts.list_events nécessite contacts:read. delete demande un code de vérification à un jeton d'accès OAuth, jamais à une clé API.

events.send_batch accepte jusqu'à 100 événements et ne lève jamais d'exception pour un seul événement invalide : la réponse liste accepted et failed, chacun avec l'index de l'événement dans la liste envoyée.

attributes sur un contact contient ses champs personnalisés, et une automatisation en lit un sous la forme attributes.<key>.