This guide shows how to send a templated WhatsApp message to any destination WhatsApp number. Templated messages are crucial to your WhatsApp messaging experience, as businesses can only initiate WhatsApp conversations using templated messages.
WhatsApp templates support 4 components: header , body, footer and button. At the point of sending messages, the template object you see in the code acts as a way to pass the dynamic values within these components. header can accomodate text or media (images, video, documents) content. body can accomodate text content. button can support dynamic values in a url button or to specify a developer-defined payload which will be returned when the WhatsApp user clicks on the quick_reply button. footer cannot have any dynamic variables.
You can start sending templated WhatsApp messages using our APIs. Follow these instructions.
To get started, you need a Plivo account — sign up with your work email address if you don’t have one already. If this is your first time using Plivo APIs, follow our instructions to set up a .NET development environment.
Once you have a Plivo account, follow our WhatsApp guide to onboard your WhatsApp account, register a number against your WABA, and have a template in an approved state.
If you phone number is in connected state and template is in approved state, you can send your first message.
Create a file called WhatsappMessageCreate.net
and paste into it this code.
using System;
using System.Collections.Generic;
using Plivo;
using Plivo.Resource.Message;
namespace PlivoExamples
{
internal class Program
{
public static void Main(string[] args)
{
var api = new PlivoApi("<auth_id>","<auth_token>");
var template = new Template
{
Name = "sample_purchase_feedback",
Language = "en_US",
Components = new List<Component>
{
new Component
{
Type = "header",
Parameters = new List<Parameter>
{
new Parameter
{
Type = "media",
Media = "https://plivo.com/s3/img1.jpg"
}
}
},
new Component
{
Type = "body",
Parameters = new List<Parameter>
{
new Parameter
{
Type = "text",
Text = "John Doe"
}
}
},
new Component
{
Type = "button",
Sub_Type = "quick_repky",
Index = "0",
Parameters = new List<Parameter>
{
new Parameter
{
Type = "payload",
Payload = "Payload sent in inbound webhook response"
}
}
},
new Component
{
Type = "button",
Sub_Type = "url",
Index = "1",
Parameters = new List<Parameter>
{
new Parameter
{
Type = "text",
Text = "replacement text which will append to url"
}
}
}
}
};
var response = api.Message.Create(
src: "+14151112221",
dst: "+14151112222",
type: "whatsapp",
template: template,
url: "https://<yourdomain>.com/sms_status/"
);
Console.WriteLine(response);
// Prints the message_uuid
Console.WriteLine(response.MessageUuid[0]);
}
}
}
Replace the auth placeholders with your authentication credentials from the Plivo console. Replace the phone number placeholders with actual phone numbers in E.164 format (for example, +12025551234). src would be your phone number registered against your WhatsApp business account. dst would be the destination WhatsApp number that would receive the message.
Save the file and run it.