Pular para conteúdo

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:

  1. Revisão manual: Preparar email mas exigir aprovação
  2. Templates: Criar base de email para edição posterior
  3. Workflow híbrido: Automação com validação humana
  4. 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

  1. Emails sensíveis: "Criar rascunho de contrato para revisão"
  2. Aprovação gerencial: "Preparar email importante para aprovação"
  3. Templates personalizados: "Criar base para equipe editar"
  4. 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