Wow! WhatsApp entegrasyonunuzu oluşturun. Ücretsiz başlayın. Şimdi Kaydol
Okul personeli brifingi · WhatsApp API kullanım senaryosu

Okuldan sonra WhatsApp'ta günlük LMS personel özeti

Sorumlu bir personel, LMS'i açmak yerine günün operasyonel resmini WhatsApp'ta okuyabilir. Okul saatlerinden sonra zamanlayıcınız veritabanını sorgulayabilir, kısa bir metin derleyebilir ve Whapi.Cloud üzerinden gönderebilir. Bu kullanım senaryosu, entegratörlere bu akışın WhatsApp API ile nasıl kurulacağını gösterir.

Yalnızca metin, grafik veya PDF yok Tek bir personel özel sohbeti
Okul operasyon panosu yanında, WhatsApp sohbetinde okul saatlerinden sonra kısa bir akşam personel özeti gösteren bir telefon.
Kullanım senaryosu

Bu akışı ne zaman kullanın

Tetikleyici okul sonrası günlük bir programdır

Bu akışı, günlük zamanlanmış bir görev okul saatlerinden sonra çalıştığında kullanın; LMS'teki her satır değişikliğinde gerçek zamanlı değil.

Özet LMS veya veritabanı verilerinden gelir

Bu akışı, own_backend LMS'i veya veritabanını sorgulayıp sayımlar veya uyarılar derlediğinde kullanın; yalnızca WhatsApp mesaj geçmişini okuduğunuzda değil.

Özel sohbette tek bir sorumlu personel

Bu akışı, sorumlu bir çalışanın özeti özel sohbette alması gerektiğinde kullanın; öğretmenlerin grupta nöbet listesi paylaştığında değil.

Telefondaki WhatsApp sohbetinde okul saatlerinden sonra kısa bir akşam personel özeti mesajı.
Müşteri deneyimi

Personel günü sohbette görür

Günlük operasyonel sinyaller, biri panoları açana kadar LMS'in içinde kalır, bu yüzden yönetim boşlukları veya birikimi geç öğrenir.

Akış çalıştıktan sonra sorumlu personel WhatsApp'ı açar ve günün operasyonel resminin kısa bir özetini okur. Entegratörler bu sonucu WhatsApp API ile kurar.

Akış

Akşam özetini sohbete gönderin

1

Günlük zamanlayıcı okuldan sonra çalışır

Zamanlayıcınız okul saatlerinden sonra tetiklenir. Bir worker LMS'i veya veritabanını sorgular ve o günün metnini oluşturur.

2

Personele metin özetini gönderin

POST /messages/text

sendMessageText derlenen özeti sorumlu personele iletir. Personel telefonunu to alanına, özeti body alanına koyun.

Teslim takibi gerekir mi? Başarılı bir API yanıtı, personelin özeti aldığı anlamına gelmez. Teslim durumu hakkında →

Ön koşullar

Akışı çalıştırmadan önce

Akşam özetini gönderen WhatsApp numarasını bağlayın ve her isteği o numaranın API token'ı ile doğrulayın. LMS sorgusu, zamanlama ve metin derleme kendi backend'inizde kalır.

İsteğe bağlı — bu akışta daha derine inin

API uygulaması

Tek çağrı özeti gönderir

Bu çağrı check-in'dir. Derlenen LMS özetini o akşam sorumlu personelin özel sohbetine koyar.

whapi.cloud'da kayıt olduktan sonra API token'ınızı ücretsiz alın ve örneklerdeki Your_Token yerine bu token'ı kullanın.

Personele metin özetini gönderin

Yönetim LMS'i açmadan günün resmini görsün diye akşam operasyonel metin özetini sorumlu personele gönderin.

curl --request POST \
     --url https://gate.whapi.cloud/messages/text \
     --header 'accept: application/json' \
     --header 'authorization: Bearer Your_Token' \
     --header 'content-type: application/json' \
     --data '
{
  "to": "447123456789",
  "body": "Today: 12 absences, 3 late arrivals, 2 open tickets."
}
'
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://gate.whapi.cloud/messages/text",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\"to\":\"447123456789\",\"body\":\"Today: 12 absences, 3 late arrivals, 2 open tickets.\"}",
  CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "authorization: Bearer Your_Token",
    "content-type: application/json"
  ],
]);

$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests

url = "https://gate.whapi.cloud/messages/text"
payload = {
    "to": "447123456789",
    "body": "Today: 12 absences, 3 late arrivals, 2 open tickets."
}
headers = {
    "accept": "application/json",
    "authorization": "Bearer Your_Token",
    "content-type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
const response = await fetch('https://gate.whapi.cloud/messages/text', {
  method: 'POST',
  headers: {
    accept: 'application/json',
    authorization: 'Bearer Your_Token',
    'content-type': 'application/json',
  },
  body: JSON.stringify({
    to: '447123456789',
    body: 'Today: 12 absences, 3 late arrivals, 2 open tickets.',
  }),
});

console.log(await response.text());
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"to\":\"447123456789\",\"body\":\"Today: 12 absences, 3 late arrivals, 2 open tickets.\"}");
Request request = new Request.Builder()
  .url("https://gate.whapi.cloud/messages/text")
  .post(body)
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer Your_Token")
  .addHeader("content-type", "application/json")
  .build();

Response response = client.newCall(request).execute();
using RestSharp;

var options = new RestClientOptions("https://gate.whapi.cloud/messages/text");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("authorization", "Bearer Your_Token");
request.AddHeader("content-type", "application/json");
request.AddJsonBody(new { to = "447123456789", body = "Today: 12 absences, 3 late arrivals, 2 open tickets." });
var response = await client.PostAsync(request);

Console.WriteLine("{0}", response.Content);
package main

import (
	"bytes"
	"fmt"
	"io"
	"net/http"
)

func main() {
	body := []byte(`{"to":"447123456789","body":"Today: 12 absences, 3 late arrivals, 2 open tickets."}`)
	req, _ := http.NewRequest("POST", "https://gate.whapi.cloud/messages/text", bytes.NewReader(body))
	req.Header.Set("accept", "application/json")
	req.Header.Set("authorization", "Bearer Your_Token")
	req.Header.Set("content-type", "application/json")

	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
Teslimat

Özetin ne zaman ulaştığını bilin

Başarılı bir gönderim yanıtı, personelin özeti aldığı anlamına gelmez. Webhook'tan önce görünen ilk durum pending olur. Sonraki durumlar yalnızca statuses.post ve statuses.put ile gelir. Durum pending kalır ve sent, delivered veya sonraki bir ack'e geçmezse mesaj teslim edilmemiştir. Payload'u ve hesabın bu türü gönderme iznini kontrol edin.

  • sendMessageText yanıtı, personelin özeti aldığına kanıt değildir.

  • İlerlemeyen bir pending, özetin teslim edilmediği anlamına gelir.

  • Sonraki ack'ler için statuses.post ve statuses.put izleyin.

  • Teslim hiç tamamlanmadığında worker'ınız yeniden deneyecekse webhook'ları açın.

Teslim ve webhook hakkında ne okunur

Bir şey ters gittiyse desteğe yazın
Bir şey ters gittiğinde

Hataları her adımda ele alın

LMS sorgusu başarısız olursa, worker gönderimi atlarsa veya metin teslim edilmezse görevi yeniden deneyin veya yedek personeli uyarın ve check-in'i tamamlanmış saymayın.

Zamanlayıcı çalıştı, ama check-in başarısız mı oldu?

LMS sorgusu herhangi bir gönderimden önce başarısız olabilir veya özet hazır olduktan sonra sendMessageText reddedilebilir ya da teslim edilmeyebilir. Worker görevini yeniden deneyin veya yedek personeli uyarın ve check-in'i tamamlanmış saymayın. Akşam check-in'i yeniden denemeden sonra hâlâ başarısızsa kanal kimliği ve başarısız gönderim yanıtıyla Whapi desteğine yazın.

Bir şey ters gittiyse desteğe yazın

API adımına göre bakın

Durum Ne anlama gelir Ne yapmalı
400 Wrong request parameters Yanlış istek parametreleri — gönderim payload'undaki to ve body alanlarını kontrol edin.
401 Need channel authorization for send message
402 Trial version limit exceeded
403 It is forbidden to send to this group/recipient Bu alıcıya gönderim yasak — personel telefonunu veya sohbet kimliğini ve kanal izinlerini doğrulayın.
429 Too many requests
500 Internal Error
Sık sorulan sorular

Entegratörlerin soruları

Hayır. Bu akış sorumlu bir personele tek bir akşam metin özeti gönderir. Grafikler, PDF'ler ve veli erişilebilirlik kontrolleri ayrı bir çok formatlı veli akışına aittir.
Hayır. Bu akış tek bir personel özel sohbetini hedefler. Grup koordinasyon uyarıları bir öğretmen grup JID'i kullanır ve ayrı bir senaryodur.
LMS sorgusu başarısız olursa, worker gönderimi atlarsa veya metin teslim edilmezse görevi yeniden deneyin veya yedek personeli uyarın ve check-in'i tamamlanmış saymayın.
Hayır. LMS verilerinizden kendi metninizi derler ve sendMessageText ile gönderirsiniz. Gönderim önceden onaylanmış bir şablon beklemez ve o mesaj için şablon başına ücret eklemez.
Kendi backend'inizde. Katalogdaki Whapi adımı yalnızca sendMessageText'tir. Zamanlama, Redis veya Celery worker'ları ve veritabanı sorguları own_backend içinde kalır.
Desteklenen WhatsApp Özellikleri

WhatsApp otomasyonları oluşturmak için ihtiyacınız olan her şey

Whapi.Cloud; mesajlaşma, medya, gruplar, kanallar, webhook’lar ve daha fazlası dahil olmak üzere WhatsApp’ın tüm özelliklerine erişim sağlar. Özellik kısıtlamaları olmadan botlar, otomasyonlar ve entegrasyonlar oluşturun.

Geliştiricilerin tercihi

3.300+ geliştirici ve SaaS ekibi tarafından güveniliyor

Dünya genelindeki geliştiriciler, otomasyonlar, botlar, CRM entegrasyonları, toplu mesaj araçları ve gelişmiş WhatsApp iş akışları oluşturmak için Whapi.Cloud'a güveniyor. Altyapımız her ay yüksek kararlılıkla milyonlarca API isteği işliyor — ve bu sayı giderek artıyor.

Özellik simgesi

5,5K+

aktif API kanalı

Özellik simgesi

21M+

aylık API isteği

“Her şey basit, sezgisel ve kullanımı kolay. Dokümantasyon net ve gerekli tüm bilgiler elimizin altında. Harika iş.”

Roberto K. / Web Geliştirici

“WhatsApp'ı n8n kullanarak iş akışlarımıza sadece birkaç dakikada bağladık. Kod yok, karmaşa yok — her şey ilk denemede çalıştı.”

Martin P. / Geliştirici

“Whapi.Cloud, müşteri iletişimimizin önemli bir parçası haline geldi. Ürün güncellemelerini, sipariş bildirimlerini ve destek mesajlarını Meta şablonlarına veya onaylara ihtiyaç duymadan otomatikleştirdik.”

Oscar T. / CTO

Dekoratif balon