Aller à la documentation
PHP

Automatisations

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

Toutes les méthodes

automations.php
use OpenEmail\Constants\AutomationEnrollmentStatuses;use OpenEmail\Constants\AutomationTriggerKinds; $automation = $client->automations->create([    'name' => 'Welcome series',    'starter' => 'welcome-series',    'settings' => ['timezone' => 'Europe/London'],]); $definition = $automation['definition'];$definition['trigger'] = ['kind' => AutomationTriggerKinds::EVENT, 'eventName' => 'trial.started', 'filters' => []]; $saved = $client->automations->update($automation['id'], [    'definition' => $definition,    'expectedUpdatedAt' => $automation['updatedAt'],]); foreach ($saved['problems'] as $problem) {    if ($problem['blocking']) {        throw new \RuntimeException($problem['message']);    }} $client->automations->sendTest($saved['id'], ['stepKey' => $saved['definition']['entry'] ?? '']);$live = $client->automations->publish($saved['id']); $sent = $client->events->send([    'name' => 'trial.started',    'email' => '[email protected]',    'properties' => ['plan' => 'starter'],    'createContact' => true,], idempotencyKey: 'trial:[email protected]'); foreach ($client->automations->iterateEnrollments($live['id'], status: AutomationEnrollmentStatuses::ACTIVE) as $enrollment) {    if ($enrollment['heldFor'] !== null) {        echo $enrollment['contact']['email'], ' ', $enrollment['heldFor'], PHP_EOL;    }} $stats = $client->automations->stats($live['id']);$history = $client->contacts->listEvents('[email protected]', name: 'trial.started'); $client->automations->pause($live['id']);$client->automations->resume($live['id']); echo count($sent['enrolled']), ' ', $stats['totals']['entered'], ' ', count($history->items), PHP_EOL;

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 sendTest nécessitent aussi emails:send. events->send et events->sendBatch nécessitent contacts:write, et contacts->listEvents nécessite contacts:read. delete demande un code de vérification à un jeton d'accès OAuth, jamais à une clé API.

events->sendBatch 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 le tableau envoyé.

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