Mesaj Şablonları

Meta İncelemesine Hazır WhatsApp Şablonları Oluşturun

Pazarlama, Yardımcı ve Kimlik Doğrulama şablonlarını canlı telefon önizlemesi, her değişken için bir örnek ve göndermeden önce yaygın hata kontrolleriyle oluşturun. Meta her şablonu inceler; onaylandıktan sonra kampanyalardan, gelen kutusundan, sohbet botu akışlarından veya REST API ile gönderin.

✦ 14 günlük ücretsiz deneme · Kendi WhatsApp Business numaranız · Mesajları Meta doğrudan faturalandırır

Her Şablon Türü, 16 Dilde

Bir kategori (Pazarlama, Yardımcı veya Kimlik Doğrulama) ve bir tür seçin: standart, sınırlı süreli teklif (bir teklif başlığı ve teklifin bitişine isteğe bağlı geri sayım), kimlik doğrulama (kod kopyalama düğmesi ve isteğe bağlı geçerlilik süresi olan tek kullanımlık şifre mesajı) veya karusel (her biri kendi görseli ya da videosu olan 2 ila 10 kart, en fazla 160 karakterlik isteğe bağlı kart metni ve en fazla 2 düğme). Bir başlık (yok, metin, görsel, video, belge veya konum), numaralı {{1}} ya da adlandırılmış {{name}} değişkenleriyle en fazla 1.024 karakterlik bir gövde ve bir alt bilgi ekleyin. Meta, şablon oluşturulduktan sonra değişken stilini korur. İngilizce, Hintçe, Arapça, Portekizce (BR), İspanyolca ve Endonezce'den Tamilce, Bengalce ve daha fazlasına kadar 16 dilden herhangi biriyle yazın.

  • Standart, sınırlı süreli teklif, kimlik doğrulama ve karusel türleri
  • Metin, görsel, video, belge veya konum başlıkları
  • Yazarken canlı telefon önizlemesi
Canlı telefon önizlemeli WhatsApp şablon düzenleyicisi

Meta İncelemesinden Önce ve Sonra Yardım

Örnekler galerisinden veya boş bir şablondan başlayın. Oluşturucu her değişken için örnek bir değer ister, değişkenle başlayan ya da biten bir gövdeyi işaretler ve bir Pazarlama şablonunda "Abonelikten çıkmak için STOP yazın" gibi bir çıkış satırı yoksa uyarır. Meta bir şablonu reddederse nedeni sade bir dille açıklanmış olarak görür, düzeltip yeniden gönderebilirsiniz. Meta bir şablonun kategorisini değiştirirse bir bildirim sizi uyarır, çünkü Meta'nın ücretini kategori belirler. Ekipten herhangi biri bu bildirimi herkes için onaylayabilir. Müşteriler engellediği veya şikâyet ettiği için Meta bir şablonu duraklatırsa, şablon sayfasından Meta'dan duraklatmanın kaldırılmasını isteyebilirsiniz.

  • Yardımcı, Pazarlama ve Kimlik Doğrulama için örnekler galerisi
  • Ret nedenleri açıklanır, ardından yeniden gönderin
  • Meta'nın şablon bazında içgörüleri: gönderilen, teslim edilen, okunan ve düğme tıklamaları (Business planı)
Gönderilen, teslim edilen, okunan ve tıklama sayılarıyla şablon içgörüleri
Düğmeler ve Araçlar

En Fazla 10 Düğme ve Çevresindeki Her Şey

Müşterilere harekete geçmenin bir yolunu verin, sonra ne yaptıklarını görün.

  • Yanıt ve Bağlantı Düğmeleri

    Hızlı yanıtlar, statik veya dinamik bağlantılı URL düğmeleri, telefon numarası düğmesi ve WhatsApp sesli veya görüntülü arama düğmeleri.

  • Ticaret ve Kupon Düğmeleri

    Kuponlar (en fazla 15 karakter, WhatsApp'ın sınırı) ve tek kullanımlık şifreler için kod kopyalama, Meta ürün kataloğunuzu açan katalog ve çoklu ürün düğmeleri ile iletişim bilgisi isteme.

  • WhatsApp Form Düğmeleri

    Meta'dan senkronize edilen bir WhatsApp Form'u (Meta Flow) bir Flow düğmesine ekleyin. Yanıtlar gelen kutusuna, API'ye ve webhook'lara yapılandırılmış alanlar olarak gelir.

  • Göndermeden Önce Kontroller

    Her değişken için zorunlu örnekler, gövdenin başında veya sonunda değişken olmaması ve Pazarlama şablonlarında abonelikten çıkma uyarısı.

  • Şablon Başına İçgörüler

    Her şablon için kaç mesajın gönderildiğini, teslim edildiğini ve okunduğunu, müşterilerin hangi düğmelere dokunduğunu görün. Her şablon için Meta'nın kendi rakamları Business planındadır.

  • API ile Gönder Paneli

    Her şablon tam olarak hangi parametrelere ihtiyaç duyduğunu ve kopyalayabileceğiniz bir isteği gösterir. template.status_updated webhook'u, Meta şablonu onayladığında, reddettiğinde veya duraklattığında sizi bilgilendirir.

Kategoriler

Pazarlama ve Yardımcı ve Kimlik Doğrulama Şablonları

Meta fiyatı kategoriye göre belirler ve doğrudan kendi WhatsApp Business Hesabınıza faturalandırır. StartMessaging hiçbir zaman mesaj başına ücret almaz.

Karşılaştırma Pazarlama Yardımcı Kimlik Doğrulama
Kullanım alanı Promosyonlar, teklifler, duyurular, yeniden etkileşim Müşterinin başlattığı bir işlemle ilgili güncellemeler: siparişler, rezervasyonlar, ödemeler, hesap uyarıları Tek kullanımlık şifreler ve giriş kodları
Meta tarafından WABA'nıza faturalanır Teslim edilen her mesaj Teslim edilen her mesaj, açık 24 saatlik pencere içinde bile (1 Ekim 2026'dan beri) Teslim edilen her mesaj
Tipik şablon türleri Standart, sınırlı süreli teklif, karusel Standart Kimlik doğrulama (kod kopyalama, isteğe bağlı geçerlilik süresi)
Gövdeyi kim yazar Siz Siz Meta (sabit kod metni, isteğe bağlı güvenlik uyarısı)
Abonelikten çıkma satırı Eksikse oluşturucu uyarır Kontrol edilmez Kontrol edilmez
API ile Gönder

Şablonun onaylandığını kontrol edin, sonra gönderin

Şablonlar panelde oluşturulur ve API üzerinden salt okunurdur: GET /api/v1/templates ile listeleyin, onaylananları POST /api/v1/messages ile gönderin.

# 1. Check that the template is approved
curl "https://waba-api.startmessaging.com/api/v1/templates?status=APPROVED&name=order_confirmation&language=en_US" \
  -H "Authorization: Bearer sm_live_your_api_key"

# 2. Send it (body: "Hi {{1}}, your order {{2}} is confirmed.")
curl -X POST https://waba-api.startmessaging.com/api/v1/messages \
  -H "Authorization: Bearer sm_live_your_api_key" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: order-1042-confirmed" \
  -d '{
    "to": "+919812345678",
    "type": "template",
    "template": {
      "name": "order_confirmation",
      "language": "en_US",
      "parameters": [
        { "text": "Asha" },
        { "text": "#1042" }
      ]
    },
    "clientReference": "order-1042"
  }'
const BASE = 'https://waba-api.startmessaging.com/api/v1';
const headers = {
  'Authorization': 'Bearer ' + process.env.SM_API_KEY, // sm_live_your_api_key
  'Content-Type': 'application/json',
};

// 1. Check that the template is approved (needs the templates:read scope)
const list = await fetch(
  `${BASE}/templates?status=APPROVED&name=order_confirmation&language=en_US`,
  { headers },
);
const { data: templates } = await list.json();
if (templates.items.length === 0) throw new Error('order_confirmation is not approved yet');

// 2. Send it (needs the messages:send scope)
const res = await fetch(`${BASE}/messages`, {
  method: 'POST',
  headers: { ...headers, 'Idempotency-Key': 'order-1042-confirmed' },
  body: JSON.stringify({
    to: '+919812345678',
    type: 'template',
    template: {
      name: 'order_confirmation',
      language: 'en_US',
      parameters: [{ text: 'Asha' }, { text: '#1042' }],
    },
    clientReference: 'order-1042',
  }),
});

const { data } = await res.json();
console.log(data.id, data.status);
import os, requests

BASE = 'https://waba-api.startmessaging.com/api/v1'
HEADERS = {'Authorization': f"Bearer {os.environ['SM_API_KEY']}"}  # sm_live_your_api_key

# 1. Check that the template is approved
templates = requests.get(
    f'{BASE}/templates',
    headers=HEADERS,
    params={'status': 'APPROVED', 'name': 'order_confirmation', 'language': 'en_US'},
).json()['data']
if not templates['items']:
    raise RuntimeError('order_confirmation is not approved yet')

# 2. Send it
res = requests.post(
    f'{BASE}/messages',
    headers={**HEADERS, 'Idempotency-Key': 'order-1042-confirmed'},
    json={
        'to': '+919812345678',
        'type': 'template',
        'template': {
            'name': 'order_confirmation',
            'language': 'en_US',
            'parameters': [{'text': 'Asha'}, {'text': '#1042'}],
        },
        'clientReference': 'order-1042',
    },
)

data = res.json()['data']
print(data['id'], data['status'])
<?php
$base = 'https://waba-api.startmessaging.com/api/v1';
$auth = 'Authorization: Bearer ' . getenv('SM_API_KEY'); // sm_live_your_api_key

// 1. Check that the template is approved
$ch = curl_init($base . '/templates?status=APPROVED&name=order_confirmation&language=en_US');
curl_setopt_array($ch, [CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [$auth]]);
$templates = json_decode(curl_exec($ch), true)['data'];
if (count($templates['items']) === 0) {
    exit('order_confirmation is not approved yet');
}

// 2. Send it
$body = json_encode([
    'to' => '+919812345678',
    'type' => 'template',
    'template' => [
        'name' => 'order_confirmation',
        'language' => 'en_US',
        'parameters' => [['text' => 'Asha'], ['text' => '#1042']],
    ],
    'clientReference' => 'order-1042',
]);

$ch = curl_init($base . '/messages');
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        $auth,
        'Content-Type: application/json',
        'Idempotency-Key: order-1042-confirmed',
    ],
    CURLOPT_POSTFIELDS => $body,
]);
$data = json_decode(curl_exec($ch), true)['data'];
echo $data['id'] . ' ' . $data['status'];
# A carousel template: body "Hi {{1}}, picks for you", each card with text "{{1}}"
# and a link button whose URL ends in a variable. Send every card, in order,
# each with its image or video.
curl -X POST https://waba-api.startmessaging.com/api/v1/messages \
  -H "Authorization: Bearer sm_live_your_api_key" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: festive-picks-919812345678" \
  -d '{
    "to": "+919812345678",
    "type": "template",
    "template": {
      "name": "festive_picks",
      "language": "en",
      "parameters": [{ "text": "Asha" }],
      "carouselCards": [
        {
          "headerMediaUrl": "https://cdn.example.com/products/kurta-blue.jpg",
          "parameters": [{ "text": "₹1,299" }],
          "buttonParameters": [{ "index": 0, "subType": "url", "text": "kurta-blue" }]
        },
        {
          "headerMediaUrl": "https://cdn.example.com/products/kurta-red.jpg",
          "parameters": [{ "text": "₹1,499" }],
          "buttonParameters": [{ "index": 0, "subType": "url", "text": "kurta-red" }]
        }
      ]
    }
  }'
SSS

WhatsApp Şablonları — SSS

Meta bir şablonu ne kadar sürede inceler?

Meta her şablonu inceler ve inceleme süresini belirler; StartMessaging şablon onaylamaz. Şablon, Meta karar verene kadar Beklemede kalır. Değiştiği anı öğrenmek için template.status_updated webhook'una abone olun veya Şablonlar sayfasını takip edin.

Meta şablonumu reddederse ne olur?

Şablon sayfası Meta'nın nedenini sade bir dille açıklanmış olarak gösterir. Nedeni düzeltip kaydederek şablonu Meta'ya yeniden gönderin ya da çoğaltıp baştan başlayın.

Şablon mesajlarının ücretini kim öder?

Meta, teslim edilen her şablonu kategorisine göre doğrudan kendi WhatsApp Business Hesabınıza (WABA) fatura eder. 1 Ekim 2026'dan beri buna açık 24 saatlik pencere içinde gönderilen yardımcı şablonlar da dahildir. Serbest biçimli müşteri hizmeti yanıtları numara başına aylık bir kotaya kadar ücretsizdir, sonrasında ücretlendirilir. StartMessaging sabit bir abonelik alır ve asla mesaj başına ücret eklemez.

Meta şablonumun kategorisini neden değiştirdi?

Meta, içeriği tanıtım amaçlı göründüğünde onaylanmış bir şablonu Yardımcı ile Pazarlama arasında taşıyabilir; bu da her mesajın maliyetini değiştirir. StartMessaging bu gerçekleştiğinde veya planlandığında Şablonlar sayfasında bir bildirim gösterir ve API her zaman Meta'nın güncel kategorisini döndürür. Ekipten herhangi biri bildirimi onaylayabilir; bildirim bir sonraki değişikliğe kadar herkes için gizlenir.

API üzerinden şablon oluşturabilir miyim?

Hayır. Şablonlar panelde oluşturulup gönderilir; örnekler ve medya Meta'ya ulaşmadan önce orada kontrol edilir. API şablonları listeler (GET /api/v1/templates, templates:read kapsamı) ve onaylı olanları POST /api/v1/messages ile gönderir; karuseller ve sınırlı süreli teklifler dahil: karusel, sırayla her kart için bir giriş olan ve her gönderimde kartın görselini veya videosunu içeren template.carouselCards alır; geri sayımlı sınırlı süreli teklif, teklifin bitiş zamanı olan template.offerExpiresAt alır. Konum başlıklı şablonlar henüz API üzerinden gönderilemez.

Hangi dillerde şablon oluşturabilirim?

16 dil: İngilizce (ABD), İngilizce (BK), Hintçe, Arapça, Portekizce (BR), İspanyolca, Endonezce, Malayca, Tamilce, Telugu dili, Kannada dili, Malayalam dili, Marathi dili, Bengalce, Guceratça ve Pencapça. Bir şablon adı her dil için bir kez bulunur, bu yüzden API ile gönderirken adı ve tam dil kodunu birlikte iletirsiniz.

Bir şablonu numaralı ve adlandırılmış değişkenler arasında değiştirebilir miyim?

Aynı şablonda hayır. Meta, bir şablonun değişken stilini — numaralı {{1}} veya adlandırılmış {{first_name}} — oluşturulduktan sonra korur. Değiştirmek için şablonu çoğaltın ve kopyayı diğer stilde yazın; Meta kopyayı incelerken orijinal çalışmaya devam eder. Meta bir şablonu değişkenleri olmadan kaydettiyse, siz düzeltene veya çoğaltana kadar gönderilemez.

Meta bir şablonu duraklattığında ne olur?

Müşteriler bir şablonu engellediğinde veya şikâyet ettiğinde Meta onu duraklatır. Şablon Duraklatıldı olarak görünür, onu kullanan kampanyalar da duraklar ve kalitesi hâlâ düşük değilse Meta şablonu serbest bıraktığında kendiliğinden devam eder. Ayrıca şablon sayfasından Meta'dan duraklatmanın kaldırılmasını isteyebilirsiniz; Meta onayladığında şablon Onaylandı olarak görünür. Meta'nın tekrarlanan duraklatmalardan sonra devre dışı bıraktığı bir şablon geri gelmez.

WhatsApp API

İlk WhatsApp Şablonunuzu Oluşturun

Kendi WhatsApp Business Hesabınızı bağlayın, bir örnekten başlayın ve 14 günlük ücretsiz denemeniz sırasında Meta'ya gönderin.