Formularios
`forms.list`, `get`, `create`, `update`, `delete`, `publish`, `pause`, `resume`, `duplicate`, `analytics`, `listStarters`, `getStarter`, `listSubmissions`, `getSubmission`, `deleteSubmission`, `deleteSubmissions`, `approveSubmission`, `resendConfirmation` y `subscribe`.
Todos los métodos
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)Un formulario guarda un borrador document y el publishedDocument que ven los visitantes. update cambia el borrador y los ajustes, y publish activa el borrador. Los ajustes surten efecto al instante, esté publicado o no, y expectedUpdatedAt rechaza con 409 version_conflict un guardado que sobrescribiría el de otra persona.
Leer requiere forms:read y cambiar requiere forms:write. approveSubmission también requiere contacts:write, porque añade un contacto. resendConfirmation también requiere emails:send, igual que una llamada que haga que el formulario envíe correo: activar doubleOptIn, configurar senderAddress o el correo de confirmación, o publicar o reanudar un formulario con doble opt-in. delete pide un código de verificación a un token de acceso OAuth, y a una clave de API nunca.
subscribe suscribe a alguien como lo hace la página del formulario y no envía ninguna credencial, ni siquiera desde un cliente que tenga una. Todas las suscripciones desde una misma red comparten un límite de 40 cada diez minutos, así que un servidor que reenvía suscripciones de muchas personas lo alcanza enseguida: en su lugar, añade a las personas que ya conoces con audiences.importContacts. Pasa la página en la que estaba el formulario como oe_source, omite oe_started y envía oe_website vacío o no lo envíes.
Un 422 de subscribe es invalid_form_submission, y el fields del error lista cada respuesta que falta o no es válida como { key, error }, con motivos como required, email y option. El cliente es para servidores. En un navegador, envía las respuestas con fetch al subscribeUrl del formulario, como cuerpo JSON o con una cabecera Accept: application/json, y responde con JSON a cualquier origen. Sin ninguna de las dos cosas, responde con una redirección 303 a la página alojada.
Respuesta: FormDetailResource
list se resuelve en una página de FormResource, del más reciente al más antiguo, sin document ni settings, y listAll e iterate recorren todas las páginas. get, create, update, publish, pause, resume y duplicate se resuelven en un FormDetailResource, que añade document, publishedDocument, settings, audiences, senderIssue y senderProblem.
idstring- El identificador duradero, `frm_` seguido de 24 caracteres hexadecimales.
status'draft' | 'live' | 'paused'- `draft` hasta la primera publicación, luego `live` mientras acepta suscripciones y `paused` mientras no las acepta. Un formulario nunca vuelve a `draft`.
urlstring- La página alojada del formulario publicado, para compartirla como enlace.
subscribeUrlstring- Adónde envían las respuestas un formulario HTML simple o `fetch`.
documentFormDocument- El borrador: los `fields` en orden, los textos de `copy` que los rodean y el `style`.
publishedDocumentFormDocument | null- Lo que ven ahora los visitantes. Null hasta la primera publicación.
settingsFormSettings- Adónde van las suscripciones y qué pasa después de cada una: `audienceIds`, `doubleOptIn`, `senderAddress`, el correo de confirmación, `successAction`, `redirectUrl` y `notifyAddresses`.
hasUnpublishedChangesboolean- True cuando el borrador difiere de lo que ven los visitantes. Siempre false antes de la primera publicación.
senderIssue'missing' | 'not_sendable' | 'not_allowed' | null- Por qué un formulario con doble opt-in no puede enviar sus correos de confirmación ahora mismo, o null cuando puede.
statsFormStats- `views`, `submissions`, `added`, `pending` y `lastSubmittedAt`, contados en el momento de la lectura.
Envíos
listSubmissions devuelve páginas del más reciente al más antiguo, con q para buscar en las direcciones de correo y status para pending o added, y listAllSubmissions e iterateSubmissions recorren todas las páginas. Cada FormSubmissionResource guarda las respuestas tal como se enviaron, etiquetas incluidas, así que se sigue leyendo bien después de que cambie el formulario.
resendConfirmation se resuelve en el envío con confirmationSent. Es false cuando no salió nada: una dirección recibe una confirmación por formulario cada diez minutos y cinco al día en todo el espacio de trabajo, y un envío ya añadido no recibe ninguna. expired marca una suscripción pendiente cuyo último enlace ha caducado.