Pular para conteúdo

SEND_IMAGE - Enviar Imagem

O que é este Node?

O SEND_IMAGE é o node responsável por enviar imagens (JPG, PNG) via WhatsApp Business API com caption opcional.

Por que este Node existe?

Imagens valem mil palavras. O SEND_IMAGE existe para:

  1. Comunicação visual: Enviar fotos de produtos, promoções
  2. Prova visual: Screenshots, comprovantes visuais
  3. Marketing: Banners, anúncios, ofertas
  4. Catálogo: Fotos de produtos para venda
  5. Caption: Adicionar texto descritivo à imagem

Como funciona internamente?

Quando o SEND_IMAGE é executado, o sistema:

  1. Valida fonte: Verifica imageUrl ou imageId
  2. Constrói payload: Cria objeto tipo 'image'
  3. Adiciona caption: Inclui legenda se fornecida
  4. Envia para API: POST com tipo image
  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_image"
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
imageUrl string Condicional URL da imagem (obrigatório se sem imageId)
imageId string Condicional ID da imagem (obrigatório se sem imageUrl)
imageCaption string Não Legenda da imagem

Exemplo Completo: Promoção de Produto

{
  "name": "Promoção WhatsApp - SEND_IMAGE",
  "nodes": [
    {
      "id": "start_1",
      "type": "start",
      "position": { "x": 100, "y": 100 },
      "data": { "label": "Início" }
    },
    {
      "id": "whatsapp_1",
      "type": "whatsapp_meta",
      "position": { "x": 300, "y": 100 },
      "data": {
        "label": "Enviar Promoção",
        "parameters": {
          "operation": "send_image",
          "accessToken": "EAAxxxxxxxx",
          "phoneNumberId": "123456789",
          "recipientPhone": "5511999999999",
          "imageUrl": "https://loja.com/promo/blackfriday.jpg",
          "imageCaption": "🔥 BLACK FRIDAY! 50% OFF\n\nTênis Esportivo\nDe: R$ 299,90\nPor: R$ 149,90\n\n⏰ Últimas unidades!\nCódigo: BF2025"
        }
      }
    },
    {
      "id": "end_1",
      "type": "end",
      "position": { "x": 500, "y": 100 },
      "data": { "label": "Fim" }
    }
  ],
  "edges": [
    { "source": "start_1", "target": "whatsapp_1" },
    { "source": "whatsapp_1", "target": "end_1" }
  ]
}

Formatos Suportados

  • JPG/JPEG: Recomendado
  • PNG: Suporta transparência
  • Tamanho máximo: 5MB

Boas Práticas

SIM: - Otimize imagens antes de enviar (< 500KB ideal) - Use JPG para fotos, PNG para logos/gráficos - Inclua caption descritivo - Use imageId para reenviar mesma imagem

NÃO: - Não envie imagens muito pesadas (> 2MB) - Não use imagens de baixa qualidade - Não ultrapasse 5MB

Dicas

💡 Otimização: Use TinyPNG ou Squoosh para comprimir imagens 💡 Dimensões: 1080x1080px é ideal para produtos 💡 Formato: JPG 80% qualidade é suficiente 💡 Caption: Máximo 1024 caracteres

Próximo Node

SEND_VIDEO - Enviar vídeos → SEND_DOCUMENT - Enviar documentos