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
from openemail import openemail automation = openemail.automations.create({ 'name': 'Welcome series', 'starter': 'welcome-series', 'settings': {'timezone': 'Europe/London'},}) saved = openemail.automations.update(automation['id'], { 'definition': { **automation['definition'], 'trigger': {'kind': 'event', 'eventName': 'trial.started', 'filters': []}, }, 'expectedUpdatedAt': automation['updatedAt'],}) blocking = [problem for problem in saved['problems'] if problem['blocking']]if blocking: raise RuntimeError(blocking[0]['message']) openemail.automations.send_test(saved['id'], {'stepKey': saved['definition']['entry'] or ''})live = openemail.automations.publish(saved['id']) sent = openemail.events.send( { 'name': 'trial.started', 'email': '[email protected]', 'properties': {'plan': 'starter'}, 'createContact': True, }, idempotency_key='trial:[email protected]',) for enrollment in openemail.automations.iterate_enrollments(live['id'], status='active'): if enrollment['heldFor']: print(enrollment['contact']['email'], enrollment['heldFor']) stats = openemail.automations.stats(live['id'])history = openemail.contacts.list_events('[email protected]', name='trial.started') openemail.automations.pause(live['id'])openemail.automations.resume(live['id']) print(sent['enrolled'], stats['totals']['entered'], len(history['items']))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>.
Referência
automations.list()Referência completaautomations.list_all()Referência completaautomations.iterate()Referência completaautomations.get()Referência completaautomations.create()Referência completaautomations.update()Referência completaautomations.delete()Referência completaautomations.publish()Referência completaautomations.pause()Referência completaautomations.resume()Referência completaautomations.archive()Referência completaautomations.duplicate()Referência completaautomations.send_test()Referência completaautomations.stats()Referência completaautomations.list_versions()Referência completaautomations.restore_version()Referência completaautomations.list_starters()Referência completaautomations.list_enrollments()Referência completaautomations.list_all_enrollments()Referência completaautomations.iterate_enrollments()Referência completaautomations.get_enrollment()Referência completaautomations.enroll()Referência completaautomations.exit_enrollment()Referência completaevents.send()Referência completaevents.send_batch()Referência completaevents.list_names()Referência completacontacts.list_events()Referência completacontacts.list_all_events()Referência completacontacts.iterate_events()Referência completa