Documentação Guias
Salvar, carregar e exportar
Salve o JSON do e-mail na sua aplicação, reabra e exporte HTML para envio.
Nesta página
Escolher onde salvar
Para gerenciar e-mails no seu backend, desative o salvamento hospedado e salve o documento completo de onDocumentChange. Para manter rascunhos e histórico na Weavour, use rascunhos hospedados.
Salvar o documento completo
Persista schemaVersion, content, subject e preheader juntos. onChange contém apenas conteúdo bruto; use onDocumentChange para manter o e-mail completo.
O exemplo envia o documento mais recente quando o usuário escolhe Salvar. Implemente /api/email-document na sua aplicação com autenticação e controle de acesso. Exiba sucesso apenas após a solicitação ser concluída.
import { mount } from '@weavour/editor';
let latestEmail: unknown;
const editor = mount('#email-editor', {
editorKey: 'YOUR_PUBLIC_EDITOR_KEY',
userId: 'user-123',
enableAutosave: false,
onDocumentChange(email) {
latestEmail = email;
},
onError: console.error,
});
// Call from your Save action. Your backend authenticates the host user.
async function saveEmail() {
await editor.ready;
if (!latestEmail) throw new Error('The document is not available yet.');
const response = await fetch('/api/email-document', {
method: 'PUT',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(latestEmail),
});
if (!response.ok) throw new Error('The email could not be saved.');
}Reabrir um e-mail salvo
Informe o envelope salvo em emailDocument. Não combine com document, subject, preheader ou draftId. Para carregar outro e-mail, salve o trabalho atual e monte uma nova instância.
import { mount, type EmailDocument } from '@weavour/editor';
// Retrieve this envelope from your authenticated application backend.
async function openSavedEmail(savedEmail: EmailDocument) {
const editor = mount('#email-editor', {
editorKey: 'YOUR_PUBLIC_EDITOR_KEY',
userId: 'user-123',
emailDocument: savedEmail,
enableAutosave: false,
onError: console.error,
});
await editor.ready;
return editor;
}Exportar HTML e texto simples
Após editor.ready, chame exportHTML(). Use html, text, subject e preheader no seu fluxo de envio. Exportar não salva o documento. previewHtml é uma captura para exibição, não o e-mail final.
As exportações preservam tokens e sintaxe das condições. Confira mergeTagIssues e displayConditionIssues e resolva a personalização antes de enviar.
// Run from your Export or Send action; show failures in your UI.
try {
await editor.ready;
const output = await editor.exportHTML();
console.log(output.html, output.text, output.subject, output.preheader);
// Resolve merge tags and conditions before submitting to your provider.
} catch (error) {
console.error('Export failed:', error);
}