CREATE_DRAFT - Criar Rascunho de Email
⚠️ FUNCIONALIDADE NÃO IMPLEMENTADA
STATUS: Esta funcionalidade ainda não está implementada no Gmail Executor.
O que seria este Node?
O CREATE_DRAFT seria o node para criar rascunhos de email no Gmail sem enviá-los, permitindo revisão manual antes do envio.
Por que este Node deveria existir?
Criar rascunhos permite preparar emails para revisão humana. Deveria existir para:
- Revisão manual: Preparar email mas exigir aprovação
- Templates: Criar base de email para edição posterior
- Workflow híbrido: Automação com validação humana
- Segurança: Evitar envios automáticos incorretos
Código sugerido para implementação:
private async createDraft(gmail: any, data: GmailNodeData): Promise<any> {
const emailLines = [
`To: ${data.to}`,
`Subject: ${data.subject}`,
'Content-Type: text/html; charset=utf-8',
'',
data.html || data.message
];
const email = emailLines.join('\n');
const encodedEmail = Buffer.from(email).toString('base64url');
const response = await gmail.users.drafts.create({
userId: 'me',
requestBody: {
message: {
raw: encodedEmail
}
}
});
return {
draftId: response.data.id,
messageId: response.data.message.id,
threadId: response.data.message.threadId,
action: 'draft_created'
};
}
Quando usar CREATE_DRAFT vs SEND_EMAIL
| Situação | Use |
|---|---|
| Enviar imediatamente | SEND_EMAIL |
| Precisa revisão humana | CREATE_DRAFT |
| Email sensível | CREATE_DRAFT |
| Automação completa | SEND_EMAIL |
| Preparar template | CREATE_DRAFT |
Casos de uso
- Emails sensíveis: "Criar rascunho de contrato para revisão"
- Aprovação gerencial: "Preparar email importante para aprovação"
- Templates personalizados: "Criar base para equipe editar"
- Segurança: "Rascunho ao invés de envio automático"
Parâmetros
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| oauth2 | object | Sim | Credenciais OAuth2 |
| operation | string | Sim | Deveria ser "create_draft" |
| to | string | Sim | Destinatário |
| subject | string | Sim | Assunto |
| message | string | Sim* | Corpo (*ou html) |
| html | string | Não | Corpo HTML |
Operações com Rascunhos
Listar rascunhos:
const drafts = await gmail.users.drafts.list({ userId: 'me' });
Enviar rascunho:
await gmail.users.drafts.send({
userId: 'me',
requestBody: { id: draftId }
});
Deletar rascunho:
await gmail.users.drafts.delete({
userId: 'me',
id: draftId
});
Workflow Sugerido
1. CREATE_DRAFT - Criar rascunho automático
2. Notificar humano para revisar
3. Humano revisa no Gmail
4. Humano envia manualmente
Ou com automação completa:
1. CREATE_DRAFT - Criar rascunho
2. Aguardar aprovação (webhook/polling)
3. Se aprovado: Enviar rascunho via API
4. Se rejeitado: Deletar rascunho
Próximo Node
→ SEND_EMAIL - Enviar imediatamente → SEND_HTML_EMAIL - Enviar HTML → GET_EMAILS - Listar emails