WhatsApp Formları

WhatsApp İçinde Yapılandırılmış Yanıtlar Toplayın

Meta'nın Flow Builder'ında bir form oluşturun, StartMessaging'e senkronize edin ve bir şablon düğmesine ekleyin. Müşteriler sohbetten çıkmadan formu doldurur; her yanıt gelen kutunuza, API'ye ve webhook'larınıza etiketli alanlar olarak gelir. WhatsApp Forms, Business paketinde ve 14 günlük ücretsiz denemededir.

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

Meta'da Oluşturulur, StartMessaging'de Kullanılır

WhatsApp Formları, Meta Flows'tur. Ekranları ve soruları Meta Business Manager içindeki Meta Flow Builder'da tasarlarsınız; StartMessaging'in kendi form düzenleyicisi yoktur. Meta'dan Senkronize Et'e basın; formlarınız durumları, kategorileri ve Meta kimlikleriyle WhatsApp Formları sayfasında görünür ve bir şablonun Flow düğmesine eklenmeye hazır olur.

  • Meta Flow Builder'ı WhatsApp Formları sayfasından açın
  • Yeni veya değişen formları almak için Meta'dan senkronize edin
  • Senkronize edilmiş bir formu bir şablonun Flow düğmesine ekleyin
Bir şablon düğmesine eklenmiş WhatsApp Form akışı

Yanıtlar Sohbete Alanlar Olarak Gelir

Bir müşteri formu gönderdiğinde ortak gelen kutusu, sohbette her yanıtın etiketlendiği bir WhatsApp Form kartı gösterir; fotoğraf veya belge seçicilerden gelen dosyalar da dahildir. Adres isteği adres olarak görünür. WhatsApp alan olarak okunamayan bir şey gönderirse kart bunu belirtir ve WhatsApp'ın tam olarak ne gönderdiğini görmenizi sağlar; böylece hiçbir şey kaybolmaz.

  • Her yanıt okunabilir bir etiketle gösterilir
  • Aynı yanıtlar GET /api/v1/messages/{id} içinde
  • Ve message.received webhook'undaki form nesnesinde
Etiketli yanıtlarla gönderilmiş bir WhatsApp Formu gösteren ortak gelen kutusu
Nasıl Çalışır

Dört Adımda Formdan Yanıtlara

01

1. Formu Meta'da oluşturun

Ekranları ve soruları Meta Flow Builder'da tasarlayın: potansiyel müşteri formu, rezervasyon, geri bildirim anketi veya müşterilerinizin doldurması gereken başka bir şey.

02

2. StartMessaging'e senkronize edin

WhatsApp Formları sayfasında Meta'dan Senkronize Et'e basın. Formlarınız durumları ve Meta kimlikleriyle görünür.

03

3. Bir şablona ekleyin

Şablon oluşturucuda bir Flow (WhatsApp Form) düğmesi ekleyin, formu seçin ve şablonu gönderin. Meta onu diğer şablonlar gibi inceler.

04

4. Gönderin ve yanıtları okuyun

Onaylanmış şablonu panelden veya API ile gönderin. API üzerinden kendi flow token'ınızı ekleyin; böylece her gönderim potansiyel müşteriniz, siparişiniz veya rezervasyonunuzla eşleştirilebilir.

Karşılaştırma

WhatsApp Form ve Sohbette Sorular ve Web Formu Bağlantısı

WhatsApp'ta bir müşteriden bilgi toplamanın üç yolu.

Kapasite WhatsApp Form Sohbette sorular Web formu bağlantısı
Müşterinin yanıtladığı yer WhatsApp içinde, form ekranlarında WhatsApp içinde, her seferinde bir mesaj Tarayıcıda, WhatsApp dışında
Aldığınız şey Yapılandırılmış alanlar: anahtar, etiket, değer Kendiniz ayrıştırdığınız serbest metin Form aracınızın gönderdiği her şey
Kaydınızla nasıl eşleştirilir Gönderdiğiniz flow token Telefon numarası ve sohbet Kendi bağlantı parametreleriniz
StartMessaging gelen kutusunda gösterilir ✓ (etiketli yanıtlar içeren form kartı olarak) ✓ (mesajlar olarak)
Nasıl gönderilir Flow düğmeli bir şablon 24 saatlik pencere içinde metin veya etkileşimli mesajlar Bir mesajdaki bağlantı veya URL düğmesi
Nerede oluşturulur Meta Flow Builder Temsilcileriniz veya bir sohbet botu akışı Web formu aracınız
API ve Webhook'lar

Kendi token'ınızla bir form gönderin, yanıtları alanlar olarak geri alın

Flow token'ı buttonParameters subType "flow" ile ayarlayın. Gönderim; form.flowToken, form.fields ve context aracılığıyla formu taşıyan mesajla birlikte message.received üzerinden gelir.

# Send the template whose Flow button opens your WhatsApp Form.
# The flow token comes back on the submission as form.flowToken.
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: lead-77-demo-form" \
  -d '{
    "to": "+919812345678",
    "type": "template",
    "template": {
      "name": "book_a_demo",
      "language": "en_US",
      "parameters": [
        { "text": "Asha" }
      ],
      "buttonParameters": [
        { "index": 0, "subType": "flow", "text": "lead-77" }
      ]
    },
    "clientReference": "lead-77"
  }'
// 1. Send the form (needs the messages:send scope)
const res = await fetch('https://waba-api.startmessaging.com/api/v1/messages', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer ' + process.env.SM_API_KEY, // sm_live_your_api_key
    'Content-Type': 'application/json',
    'Idempotency-Key': 'lead-77-demo-form',
  },
  body: JSON.stringify({
    to: '+919812345678',
    type: 'template',
    template: {
      name: 'book_a_demo',
      language: 'en_US',
      parameters: [{ text: 'Asha' }],
      buttonParameters: [{ index: 0, subType: 'flow', text: 'lead-77' }],
    },
    clientReference: 'lead-77',
  }),
});
const { data } = await res.json();
console.log(data.id, data.status);

// 2. In your message.received webhook handler (after verifying the signature)
function onMessageReceived(event) {
  const form = event.data.message.form;
  if (!form) return;
  const answers = Object.fromEntries(form.fields.map((f) => [f.key, f.value]));
  // form.flowToken === 'lead-77' -> update that lead with the answers
}
import os, requests

res = requests.post(
    'https://waba-api.startmessaging.com/api/v1/messages',
    headers={
        'Authorization': f"Bearer {os.environ['SM_API_KEY']}",  # sm_live_your_api_key
        'Idempotency-Key': 'lead-77-demo-form',
    },
    json={
        'to': '+919812345678',
        'type': 'template',
        'template': {
            'name': 'book_a_demo',
            'language': 'en_US',
            'parameters': [{'text': 'Asha'}],
            'buttonParameters': [{'index': 0, 'subType': 'flow', 'text': 'lead-77'}],
        },
        'clientReference': 'lead-77',
    },
)

data = res.json()['data']
print(data['id'], data['status'])

# Later: read the answers from the message.received webhook,
# or GET /api/v1/messages/{id} for the inbound message (messages:read scope).
<?php
$body = json_encode([
    'to' => '+919812345678',
    'type' => 'template',
    'template' => [
        'name' => 'book_a_demo',
        'language' => 'en_US',
        'parameters' => [['text' => 'Asha']],
        'buttonParameters' => [
            ['index' => 0, 'subType' => 'flow', 'text' => 'lead-77'],
        ],
    ],
    'clientReference' => 'lead-77',
]);

$ch = curl_init('https://waba-api.startmessaging.com/api/v1/messages');
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . getenv('SM_API_KEY'), // sm_live_your_api_key
        'Content-Type: application/json',
        'Idempotency-Key: lead-77-demo-form',
    ],
    CURLOPT_POSTFIELDS => $body,
]);
$data = json_decode(curl_exec($ch), true)['data'];
echo $data['id'] . ' ' . $data['status'];
{
  "id": "evt_01JCA4M8ZP",
  "type": "message.received",
  "createdAt": "2026-10-07T11:05:12.000Z",
  "workspaceId": "ws_9f2c",
  "data": {
    "message": {
      "id": "msg_8e41",
      "conversationId": "conv_3a90",
      "contactId": "ct_88b1",
      "from": "+919812345678",
      "type": "interactive",
      "text": "Full name: Asha Rao · City: Pune · Preferred date: 2026-10-12",
      "reply": null,
      "context": {
        "messageId": "msg_7f20",
        "clientReference": "lead-77"
      },
      "form": {
        "kind": "flow",
        "flowToken": "lead-77",
        "flowId": "1187364520093321",
        "flowName": "Book a demo",
        "fields": [
          { "key": "screen_0_Full_name_0", "label": "Full name", "value": "Asha Rao" },
          { "key": "screen_0_City_1", "label": "City", "value": "Pune" },
          { "key": "screen_0_Preferred_date_2", "label": "Preferred date", "value": "2026-10-12" }
        ],
        "raw": null
      },
      "referral": null,
      "timestamp": "2026-10-07T11:05:10.000Z"
    },
    "contact": {
      "id": "ct_88b1",
      "phone": "+919812345678",
      "name": "Asha"
    }
  }
}
SSS

WhatsApp Formları — SSS

Formu StartMessaging içinde oluşturabilir miyim?

Hayır. WhatsApp Formları Meta Flows'tur ve Meta Business Manager içindeki Meta Flow Builder'da oluşturulur. StartMessaging formlarınızı Meta'dan senkronize eder, şablon düğmelerine eklemenizi sağlar ve yanıtları gösterip iletir.

Bir müşteriye WhatsApp Formu nasıl gönderirim?

Formu bir şablondaki Flow düğmesine ekleyin ve şablonu Meta'ya gönderin. Meta onayladıktan sonra diğer şablonlar gibi gönderin. API üzerinden POST /api/v1/messages ile buttonParameters [{ "index": 0, "subType": "flow", "text": "<flow token'ınız>" }] kullanın.

Bir gönderimi potansiyel müşterim veya rezervasyonumla nasıl eşleştiririm?

Kaydı tanımlayan bir flow token gönderin, örneğin "lead-77". Gönderimde form.flowToken olarak geri gelir. Gönderimde token yoksa flowToken "unused" olur. Gönderimin context alanı da formu taşıyan mesajı, clientReference değeriyle birlikte gösterir.

Yanıtları nerede okuyabilirim?

Üç yerde: ortak gelen kutusu sohbetinde bir form kartı olarak; API üzerinden GET /api/v1/messages/{id} veya sohbetin mesaj listesiyle; ve message.received webhook'unun form nesnesinde { kind, flowToken, flowId, flowName, fields: [{ key, label, value }], raw } olarak.

Alan etiketleri formuma yazdıklarımla aynı mı?

Tam olarak değil. WhatsApp her yanıtı bir yanıt anahtarıyla gönderir ve StartMessaging bu anahtarı okunabilir bir etikete dönüştürür (Flow Builder'daki screen_0_Full_name_0, "Full name" olarak okunur). Verilerinizi WhatsApp'ın gönderdiği haliyle key üzerinden eşleyin. Yanıtlar JSON olarak okunamazsa fields boş olur ve raw, WhatsApp'ın orijinal yanıtını içerir.

WhatsApp Formlarını ne için kullanabilirim?

Tek seferde birkaç bilgiye ihtiyaç duyduğunuz her durum: potansiyel müşteri toplama, randevu ve demo rezervasyonları, geri bildirim anketleri ve adres istekleri. Yanıtlar metin, evet/hayır onayları, sayılar, onay kutusu seçimleri veya bir fotoğraf ya da belge seçiciden dosyalar olabilir.

WhatsApp Forms hangi pakette var?

Business paketi ve 14 günlük ücretsiz deneme, chatbot akışlarıyla birlikte. Formları Meta’dan senkronize etmek ve bir şablona Flow (WhatsApp Form) butonu eklemek Business gerektirir. Team; ortak gelen kutusunu, kişileri, kampanyaları ve anahtar kelime otomatik yanıtlarını kapsar, ancak formları kapsamaz.

WhatsApp Formları ek ücretli mi?

StartMessaging form veya mesaj başına ücret almaz: WhatsApp Forms, Business paketiyle gelir. Meta, formu taşıyan da dahil teslim edilen her şablonu kendi kategorisinin ücretiyle doğrudan kendi WhatsApp Business Hesabınıza fatura eder.

WhatsApp API

WhatsApp'ta Yanıt Toplamaya Başlayın

WhatsApp Business Hesabınızı bağlayın, formlarınızı Meta’dan senkronize edin ve ilkini 14 günlük ücretsiz deneme sırasında gönderin. WhatsApp Forms, Business paketindedir.