Formulare
`forms.list`, `get`, `create`, `update`, `delete`, `publish`, `pause`, `resume`, `duplicate`, `analytics`, `listStarters`, `getStarter`, `listSubmissions`, `getSubmission`, `deleteSubmission`, `deleteSubmissions`, `approveSubmission`, `resendConfirmation` und `subscribe`.
Jede Methode
const form = await openemail.forms.create({ name: 'Newsletter sign-up', starter: 'newsletter', settings: { audienceIds: ['aud_4c1b8e2a7d9f05c36b4e8a71'] }, publish: true,}) console.log(form.url, form.subscribeUrl) const saved = await openemail.forms.update(form.id, { settings: { doubleOptIn: true, senderAddress: '[email protected]' }, expectedUpdatedAt: form.updatedAt,}) const signup = await openemail.forms.subscribe(form.id, { email: '[email protected]', first_name: 'Ann', consent: true,}) for await (const submission of openemail.forms.iterateSubmissions(form.id, { status: 'pending' })) { if (submission.expired) await openemail.forms.resendConfirmation(form.id, submission.id)} const stats = await openemail.forms.analytics(form.id, { days: 30 })const starters = await openemail.forms.listStarters() await openemail.forms.pause(form.id)await openemail.forms.resume(form.id)const copy = await openemail.forms.duplicate(form.id)await openemail.forms.delete(copy.id) console.log(saved.senderIssue, signup.outcome, stats.totals.conversion, starters.length)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. approveSubmission erfordert außerdem contacts:write, weil es einen Kontakt hinzufügt. resendConfirmation 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.importContacts 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 löst zu einer Seite von FormResource auf, neueste zuerst, ohne document und settings, und listAll und iterate gehen alle Seiten durch. get, create, update, publish, pause, resume und duplicate lösen zu einer FormDetailResource auf, die document, publishedDocument, settings, audiences, senderIssue und senderProblem ergänzt.
idstring- Der dauerhafte Bezeichner, `frm_` gefolgt von 24 Hexzeichen.
status'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.
urlstring- Die gehostete Seite des veröffentlichten Formulars, zum Teilen als Link.
subscribeUrlstring- 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 | null- Was Besucher jetzt sehen. Null 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`.
hasUnpublishedChangesboolean- True, wenn sich der Entwurf von dem unterscheidet, was Besucher sehen. Vor der ersten Veröffentlichung immer false.
senderIssue'missing' | 'not_sendable' | 'not_allowed' | null- Warum ein Formular mit Double-Opt-in seine Bestätigungs-E-Mails gerade nicht senden kann, oder null, wenn es das kann.
statsFormStats- `views`, `submissions`, `added`, `pending` und `lastSubmittedAt`, gezählt im Moment des Lesens.
Einsendungen
listSubmissions liefert Seiten, neueste zuerst, mit q zum Durchsuchen von E-Mail-Adressen und status für pending oder added, und listAllSubmissions und iterateSubmissions 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.
resendConfirmation löst zur Einsendung mit confirmationSent auf. Es ist false, wenn nichts hinausging: Eine Adresse erhält eine Bestätigung pro Formular alle zehn Minuten und fünf pro Tag im ganzen Workspace, und eine hinzugefügte Einsendung erhält keine. expired markiert eine ausstehende Anmeldung, deren neuester Link abgelaufen ist.