Preview:
import axios from "axios"; // or `const axios = require("axios")` for CommonJS

export async function sendWhatsAppTemplate(toPhoneE164, values) {
  const phoneNumberId = process.env.WHATSAPP_PHONE_NUMBER_ID;
  const accessToken = process.env.WHATSAPP_ACCESS_TOKEN;
  const url = `https://graph.facebook.com/v18.0/${phoneNumberId}/messages`;

  const headers = {
    Authorization: `Bearer ${accessToken}`,
    "Content-Type": "application/json",
  };

  const data = {
    messaging_product: "whatsapp",
    to: toPhoneE164,
    type: "template",
    template: {
      name: "logiyatra_tender_notification",
      language: {
        code: "hi",
      },
      components: [
        {
          type: "header",
          parameters: [
            {
              type: "image",
              image: {
                link: "https://i.postimg.cc/90J3tYDM/logourl.png",
              },
            },
          ],
        },
        {
          type: "body",
          parameters: [
            {
              type: "text",
              text: values.dispatch_location,
              parameter_name: "dispatch_location",
            },
            {
              type: "text",
              text: values.delivery_from,
              parameter_name: "delivery_from",
            },
            {
              type: "text",
              text: values.delivery_to,
              parameter_name: "delivery_to",
            },
            {
              type: "text",
              text: values.start_datetime,
              parameter_name: "start_datetime",
            },
            {
              type: "text",
              text: values.end_datetime,
              parameter_name: "end_datetime",
            },
          ],
        },
      ],
    },
  };
  try {  
    const response = await axios.post(url, data, { headers });
    return response.data;
  } catch (error) {
    console.error(
      "❌ Failed to send WhatsApp template:",
      error.response?.data || error.message
    );
  }
}
downloadDownload PNG downloadDownload JPEG downloadDownload SVG

Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!

Click to optimize width for Twitter