Zur Dokumentation springen
Python

Formulare

`forms.list`, `get`, `create`, `update`, `delete`, `publish`, `pause`, `resume`, `duplicate`, `analytics`, `list_starters`, `get_starter`, `list_submissions`, `get_submission`, `delete_submission`, `delete_submissions`, `approve_submission`, `resend_confirmation` und `subscribe`.

Jede Methode

forms.py
from openemail import openemail form = openemail.forms.create({    'name': 'Newsletter sign-up',    'starter': 'newsletter',    'settings': {'audienceIds': ['aud_4c1b8e2a7d9f05c36b4e8a71']},    'publish': True,}) print(form['url'], form['subscribeUrl']) saved = openemail.forms.update(form['id'], {    'settings': {'doubleOptIn': True, 'senderAddress': '[email protected]'},    'expectedUpdatedAt': form['updatedAt'],}) signup = openemail.forms.subscribe(form['id'], {    'email': '[email protected]',    'first_name': 'Ann',    'consent': True,}) for submission in openemail.forms.iterate_submissions(form['id'], status='pending'):    if submission['expired']:        openemail.forms.resend_confirmation(form['id'], submission['id']) stats = openemail.forms.analytics(form['id'], days=30)starters = openemail.forms.list_starters() openemail.forms.pause(form['id'])openemail.forms.resume(form['id'])copy = openemail.forms.duplicate(form['id'])openemail.forms.delete(copy['id']) print(saved['senderIssue'], signup['outcome'], stats['totals']['conversion'], len(starters))

Ein Formular hat einen Entwurf in document und das publishedDocument, das Besucher sehen. update ändert den Entwurf und die Einstellungen, und publish schaltet den Entwurf live. Einstellungen gelten sofort, ob veröffentlicht oder nicht, und expectedUpdatedAt lehnt eine Speicherung, die die einer anderen Person überschreiben würde, mit 409 version_conflict ab.

Lesen erfordert forms:read und Ändern erfordert forms:write. approve_submission erfordert außerdem contacts:write, weil es einen Kontakt hinzufügt. resend_confirmation erfordert außerdem emails:send, ebenso ein Aufruf, durch den das Formular E-Mails sendet: doubleOptIn einschalten, senderAddress oder die Bestätigungs-E-Mail festlegen oder ein Formular mit Double-Opt-in veröffentlichen oder fortsetzen. delete verlangt von einem OAuth-Zugriffstoken einen Bestätigungscode, von einem API-Schlüssel nie.

subscribe meldet jemanden so an, wie es die Seite des Formulars tut, und sendet keine Zugangsdaten, auch nicht von einem Client, der welche hat. Alle Anmeldungen aus einem Netzwerk teilen sich ein Limit von 40 alle zehn Minuten, ein Server, der Anmeldungen für viele Personen weiterreicht, erreicht es also schnell: Fügen Sie Personen, die Sie bereits kennen, stattdessen mit audiences.import_contacts hinzu. Übergeben Sie die Seite, auf der das Formular war, als oe_source, lassen Sie oe_started weg und senden Sie oe_website leer oder gar nicht.

Ein 422 von subscribe ist invalid_form_submission, und fields im Fehler listet jede fehlende oder ungültige Antwort als {'key': ..., 'error': ...} auf, mit Gründen wie required, email und option. Der Client ist für Server gedacht. Im Browser senden Sie die Antworten mit fetch an die subscribeUrl des Formulars, als JSON-Body oder mit einem Accept: application/json-Header, und sie beantwortet Anfragen von jedem Ursprung mit JSON. Fehlt beides, antwortet sie mit einer 303-Weiterleitung auf die gehostete Seite.

Antwort: FormDetailResource

list gibt eine Seite von FormResource zurück, neueste zuerst, ohne document und settings, und list_all und iterate durchlaufen alle Seiten. get, create, update, publish, pause, resume und duplicate geben eine FormDetailResource zurück, die document, publishedDocument, settings, audiences, senderIssue und senderProblem ergänzt.

idstr
Der dauerhafte Bezeichner, `frm_` gefolgt von 24 Hexzeichen.
statusLiteral['draft', 'live', 'paused']
`draft` bis zur ersten Veröffentlichung, dann `live`, solange es Anmeldungen annimmt, und `paused`, solange es keine annimmt. Ein Formular kehrt nie zu `draft` zurück.
urlstr
Die gehostete Seite des veröffentlichten Formulars, zum Teilen als Link.
subscribeUrlstr
Wohin ein reines HTML-Formular oder `fetch` die Antworten sendet.
documentFormDocument
Der Entwurf: `fields` in ihrer Reihenfolge, die umgebenden Texte in `copy` und der `style`.
publishedDocumentFormDocument | None
Was Besucher jetzt sehen. `None` bis zur ersten Veröffentlichung.
settingsFormSettings
Wohin Anmeldungen gehen und was danach geschieht: `audienceIds`, `doubleOptIn`, `senderAddress`, die Bestätigungs-E-Mail, `successAction`, `redirectUrl` und `notifyAddresses`.
hasUnpublishedChangesbool
`True`, wenn sich der Entwurf von dem unterscheidet, was Besucher sehen. Vor der ersten Veröffentlichung immer `False`.
senderIssueLiteral['missing', 'not_sendable', 'not_allowed'] | None
Warum ein Formular mit Double-Opt-in seine Bestätigungs-E-Mails gerade nicht senden kann, oder `None`, wenn es das kann.
statsFormStats
`views`, `submissions`, `added`, `pending` und `lastSubmittedAt`, gezählt im Moment des Lesens.

Einsendungen

list_submissions liefert Seiten, neueste zuerst, mit q zum Durchsuchen von E-Mail-Adressen und status für pending oder added, und list_all_submissions und iterate_submissions gehen alle Seiten durch. Jede FormSubmissionResource behält die Antworten so, wie sie gesendet wurden, samt Bezeichnungen, sodass sie auch nach einer Änderung des Formulars richtig lesbar bleibt.

resend_confirmation gibt die Einsendung mit confirmationSent zurück. Es ist False, wenn nichts hinausging: Eine Adresse bekommt pro Formular alle zehn Minuten eine Bestätigung und fünf pro Tag über den ganzen Workspace, und eine hinzugefügte Einsendung bekommt keine. expired markiert eine ausstehende Anmeldung, deren letzter Link abgelaufen ist.

Referenz