Zur Dokumentation springen
PHP

Automatisierungen

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

Jede Methode

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;

Eine Automatisierung hat einen Entwurf in definition und die Version in published, die läuft. update ändert den Entwurf und die Einstellungen, und publish friert den Entwurf als nächste Version ein und schaltet die Automatisierung ein. problems sagt, was der Veröffentlichung eines Entwurfs noch im Weg steht, und expectedUpdatedAt lehnt eine Speicherung, die die einer anderen Person überschreiben würde, mit 409 version_conflict ab.

Lesen erfordert automations:read und Ändern erfordert automations:write. publish, resume und sendTest erfordern außerdem emails:send. events->send und events->sendBatch erfordern contacts:write, und contacts->listEvents erfordert contacts:read. delete verlangt von einem OAuth-Zugriffstoken einen Bestätigungscode, von einem API-Schlüssel nie.

events->sendBatch nimmt bis zu 100 Ereignisse und wirft wegen eines einzelnen fehlerhaften Ereignisses nie einen Fehler: Die Antwort listet accepted und failed auf, jeweils mit dem index des Ereignisses im gesendeten Array.

attributes an einem Kontakt enthält seine eigenen Felder, und eine Automatisierung liest eines als attributes.<key>.