Formulários
`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` e `subscribe`.
Todos os métodos
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))Um formulário guarda um rascunho document e o publishedDocument que os visitantes veem. update altera o rascunho e as definições, e publish ativa o rascunho. As definições têm efeito de imediato, publicadas ou não, e expectedUpdatedAt recusa com 409 version_conflict uma alteração guardada que substituiria a de outra pessoa.
Ler requer forms:read e alterar requer forms:write. approve_submission requer também contacts:write, porque adiciona um contacto. resend_confirmation requer também emails:send, tal como uma chamada que faça o formulário enviar correio: ativar doubleOptIn, definir senderAddress ou o email de confirmação, ou ainda publicar ou retomar um formulário com dupla confirmação. delete pede um código de verificação a um token de acesso OAuth, e a uma chave de API nunca.
subscribe inscreve alguém tal como a página do formulário faz e não envia nenhuma credencial, mesmo a partir de um cliente que tenha uma. Todas as inscrições a partir de uma mesma rede partilham um limite de 40 a cada dez minutos, por isso um servidor que reencaminha inscrições de muitas pessoas atinge-o depressa: em vez disso, adicione as pessoas que já conhece com audiences.import_contacts. Passe a página onde estava o formulário como oe_source, deixe de fora oe_started, e envie oe_website vazio ou não o envie de todo.
Um 422 de subscribe é invalid_form_submission, e o fields do erro lista cada resposta em falta ou inválida como {'key': ..., 'error': ...}, com motivos como required, email e option. O cliente é para servidores. Num navegador, envie as respostas com fetch para o subscribeUrl do formulário, como corpo JSON ou com um cabeçalho Accept: application/json, e ele responde em JSON a pedidos de qualquer origem. Sem nenhum dos dois, responde com um redirecionamento 303 para a página alojada.
Resposta: FormDetailResource
list devolve uma página de FormResource, dos mais recentes para os mais antigos, sem document e settings, e list_all e iterate percorrem todas as páginas. get, create, update, publish, pause, resume e duplicate devolvem um FormDetailResource, que acrescenta document, publishedDocument, settings, audiences, senderIssue e senderProblem.
idstr- O identificador duradouro: `frm_` seguido de 24 caracteres hexadecimais.
statusLiteral['draft', 'live', 'paused']- `draft` até à primeira publicação, depois `live` enquanto aceita inscrições e `paused` enquanto não as aceita. Um formulário nunca volta a `draft`.
urlstr- A página alojada do formulário publicado, para partilhar como ligação.
subscribeUrlstr- Para onde um formulário HTML simples, ou `fetch`, envia as respostas.
documentFormDocument- O rascunho: os `fields` por ordem, os textos de `copy` à sua volta e o `style`.
publishedDocumentFormDocument | None- O que os visitantes veem agora. `None` até à primeira publicação.
settingsFormSettings- Para onde vão as inscrições e o que acontece depois de cada uma: `audienceIds`, `doubleOptIn`, `senderAddress`, o email de confirmação, `successAction`, `redirectUrl` e `notifyAddresses`.
hasUnpublishedChangesbool- `True` quando o rascunho difere do que os visitantes veem. Sempre `False` antes da primeira publicação.
senderIssueLiteral['missing', 'not_sendable', 'not_allowed'] | None- Porque é que um formulário com dupla confirmação não pode enviar os seus emails de confirmação neste momento, ou `None` quando pode.
statsFormStats- `views`, `submissions`, `added`, `pending` e `lastSubmittedAt`, contados no momento da leitura.
Submissões
list_submissions devolve páginas das mais recentes para as mais antigas, com q para pesquisar endereços de email e status para pending ou added, e list_all_submissions e iterate_submissions percorrem todas as páginas. Cada FormSubmissionResource guarda as respostas tal como foram enviadas, etiquetas incluídas, para que continue a ler-se corretamente depois de o formulário mudar.
resend_confirmation devolve a submissão com confirmationSent. É False quando nada saiu: um endereço recebe uma confirmação por formulário a cada dez minutos e cinco por dia em todo o espaço de trabalho, e uma submissão já adicionada não recebe nenhuma. expired assinala uma inscrição pendente cuja ligação mais recente expirou.
Referência
forms.list()Referência completaforms.list_all()Referência completaforms.iterate()Referência completaforms.get()Referência completaforms.create()Referência completaforms.update()Referência completaforms.delete()Referência completaforms.publish()Referência completaforms.pause()Referência completaforms.resume()Referência completaforms.duplicate()Referência completaforms.analytics()Referência completaforms.list_starters()Referência completaforms.get_starter()Referência completaforms.list_submissions()Referência completaforms.list_all_submissions()Referência completaforms.iterate_submissions()Referência completaforms.get_submission()Referência completaforms.delete_submission()Referência completaforms.delete_submissions()Referência completaforms.approve_submission()Referência completaforms.resend_confirmation()Referência completaforms.subscribe()Referência completa