Pular para conteúdo

SEND_VIDEO - Enviar Vídeo

O que é este Node?

O SEND_VIDEO é o node responsável por enviar vídeos (MP4, 3GPP) via WhatsApp Business API com caption opcional.

Por que este Node existe?

Vídeo é engajamento. O SEND_VIDEO existe para:

  1. Demonstrações: Mostrar produtos/serviços em ação
  2. Tutoriais: Ensinar passo a passo
  3. Marketing: Anúncios em vídeo, promoções
  4. Depoimentos: Compartilhar testemunhos de clientes
  5. Conteúdo: Vídeos educativos, informativos

Como funciona internamente?

Quando o SEND_VIDEO é executado, o sistema:

  1. Valida fonte: Verifica videoUrl ou videoId
  2. Constrói payload: Cria objeto tipo 'video'
  3. Adiciona caption: Inclui legenda se fornecida
  4. Envia para API: POST com tipo video
  5. Retorna message_id: Confirma envio

Código interno (whatsapp-meta-executor.service.ts:393-434):

private async sendMedia(data: WhatsAppMetaNodeData): Promise<any> {
  const mediaType = this.getMediaType(data.operation!);
  const mediaUrl = this.getMediaUrl(data);
  const mediaId = this.getMediaId(data);
  const caption = this.getMediaCaption(data);

  const mediaObject: any = {};

  if (mediaId) {
    mediaObject.id = mediaId;
  } else {
    mediaObject.link = mediaUrl;
  }

  if (caption) {
    mediaObject.caption = caption;
  }

  const payload = {
    messaging_product: 'whatsapp',
    to: data.recipientPhone,
    type: mediaType,
    [mediaType]: mediaObject
  };

  const response: AxiosResponse = await axios.post(
    `${this.WHATSAPP_API_BASE}/${data.phoneNumberId}/messages`,
    payload,
    {
      headers: {
        'Authorization': `Bearer ${data.accessToken}`,
        'Content-Type': 'application/json'
      }
    }
  );

  return response.data;
}

Parâmetros

Campo Tipo Obrigatório Descrição
operation string Sim Deve ser "send_video"
accessToken string Sim Token de acesso da WhatsApp Business API
phoneNumberId string Sim ID do número WhatsApp Business
recipientPhone string Sim Número do destinatário
videoUrl string Condicional URL do vídeo (obrigatório se sem videoId)
videoId string Condicional ID do vídeo (obrigatório se sem videoUrl)
videoCaption string Não Legenda do vídeo

Exemplo Completo: Tutorial de Produto

{
  "name": "Tutorial Produto - SEND_VIDEO",
  "nodes": [
    {
      "id": "start_1",
      "type": "start",
      "position": { "x": 100, "y": 100 },
      "data": { "label": "Início" }
    },
    {
      "id": "message_1",
      "type": "message",
      "position": { "x": 300, "y": 100 },
      "data": {
        "label": "Introdução",
        "parameters": {
          "message": "🎥 Como usar seu novo produto\n\nVeja o vídeo tutorial:"
        }
      }
    },
    {
      "id": "whatsapp_1",
      "type": "whatsapp_meta",
      "position": { "x": 500, "y": 100 },
      "data": {
        "label": "Enviar Tutorial",
        "parameters": {
          "operation": "send_video",
          "accessToken": "EAAxxxxxxxx",
          "phoneNumberId": "123456789",
          "recipientPhone": "5511999999999",
          "videoUrl": "https://videos.empresa.com/tutorial-produto.mp4",
          "videoCaption": "📱 Tutorial Completo\n\nAprenda a configurar e usar seu produto em 3 minutos!\n\nDúvidas? Estamos à disposição."
        }
      }
    },
    {
      "id": "end_1",
      "type": "end",
      "position": { "x": 700, "y": 100 },
      "data": { "label": "Fim" }
    }
  ],
  "edges": [
    { "source": "start_1", "target": "message_1" },
    { "source": "message_1", "target": "whatsapp_1" },
    { "source": "whatsapp_1", "target": "end_1" }
  ]
}

Formatos Suportados

  • MP4: Recomendado (H.264 codec)
  • 3GPP: Formato mobile
  • Tamanho máximo: 16MB

Boas Práticas

SIM: - Comprima vídeos antes de enviar - Use resolução 720p (HD) - Mantenha vídeos curtos (< 2 minutos) - Use caption descritivo

NÃO: - Não envie vídeos longos (> 5 min) - Não ultrapasse 16MB - Não use resolução 4K (desnecessário)

Dicas

💡 Compressão: Use HandBrake ou FFmpeg para comprimir 💡 Duração: Vídeos < 1 minuto têm melhor engajamento 💡 Codec: H.264 é o mais compatível 💡 Bitrate: 1-2 Mbps é suficiente para 720p

Próximo Node

SEND_IMAGE - Enviar imagens → SEND_AUDIO - Enviar áudios