Uau! Construiți-vă integrarea WhatsApp. Începeți gratuit. Înregistrați-vă acum
WhatsApp API

Un sondaj NPS într-un chat WhatsApp după interacțiune

Persoana poate nota acea interacțiune în chatul pe care îl folosește deja. Când interacțiunea s-a încheiat, backend-ul tău poate trimite sondajul prin Whapi.Cloud. Acest caz de utilizare arată integratorilor cum implementează fluxul prin WhatsApp API.

Chat personal, nu un grup Un singur scor
O conversație încheiată lângă un telefon al cărui chat WhatsApp arată un sondaj NPS la care persoana poate răspunde.
Caz de utilizare

Când folosești acest flux

Interacțiunea s-a încheiat deja

Folosește acest flux când interacțiunea s-a încheiat, nu cât timp este încă deschisă.

Scorul ajunge într-un chat personal

Folosește acest flux când persoana trebuie să primească sondajul într-un chat personal, nu într-un grup.

Mesajul este un sondaj NPS

Folosește acest flux când mesajul este un sondaj NPS, nu întrebări de calificare dintr-o reclamă și nu un reminder de vizită.

Chat WhatsApp pe un telefon, cu un sondaj NPS la care persoana poate răspunde cu un scor.
Experiența clientului

Persoana poate nota în chat

După ce o interacțiune se încheie, echipa cere nota manual sau sare sondajul, așa că feedbackul ajunge târziu sau deloc.

După ce fluxul rulează, persoana vede un sondaj NPS în chatul personal WhatsApp și poate alege un scor. Integratorii construiesc acest rezultat cu WhatsApp API.

Flux

Trimite sondajul NPS în chat

1

Interacțiunea s-a încheiat

Backend-ul tău știe deja că interacțiunea s-a terminat și are telefonul persoanei.

2

Trimite sondajul NPS

POST /messages/poll

sendMessagePoll sends the poll into that personal chat. The title and the score options are on that send. count is 1, so the person picks one score.

Ai nevoie de urmărirea livrării? Un răspuns de trimitere reușit nu înseamnă că persoana are deja sondajul. Află despre starea de livrare →

Cerințe

Înainte să rulezi fluxul

Conectează numărul WhatsApp care trimite sondajul și autentifică fiecare cerere cu tokenul acelui număr. Evenimentul de interacțiune încheiat rămâne în backend-ul tău.

Opțional — intră mai adânc în acest flux

Implementare API

Un apel trimite sondajul

Acest apel este sondajul. Pune titlul și opțiunile de scor în chatul personal al persoanei care tocmai a terminat interacțiunea.

Primești tokenul API gratuit după ce te înregistrezi pe whapi.cloud și folosești acel token în cod în loc de Your_Token din exemple.

Trimite sondajul NPS

Trimite sondajul NPS în chatul personal, cu titlul și opțiunile acestei interacțiuni, ca persoana să aleagă un scor.

curl --request POST \
     --url https://gate.whapi.cloud/messages/poll \
     --header 'accept: application/json' \
     --header 'authorization: Bearer Your_Token' \
     --header 'content-type: application/json' \
     --data '
{
  "to": "447123456789",
  "title": "How likely are you to recommend us?",
  "options": ["0", "10"],
  "count": 1
}
'
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://gate.whapi.cloud/messages/poll",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\"to\":\"447123456789\",\"title\":\"How likely are you to recommend us?\",\"options\":[\"0\",\"10\"],\"count\":1}",
  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/poll"
payload = {
    "to": "447123456789",
    "title": "How likely are you to recommend us?",
    "options": ["0", "10"],
    "count": 1
}
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/poll', {
  method: 'POST',
  headers: {
    accept: 'application/json',
    authorization: 'Bearer Your_Token',
    'content-type': 'application/json',
  },
  body: JSON.stringify({
    to: '447123456789',
    title: 'How likely are you to recommend us?',
    options: ['0', '10'],
    count: 1,
  }),
});

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

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"to\":\"447123456789\",\"title\":\"How likely are you to recommend us?\",\"options\":[\"0\",\"10\"],\"count\":1}");
Request request = new Request.Builder()
  .url("https://gate.whapi.cloud/messages/poll")
  .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/poll");
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", title = "How likely are you to recommend us?", options = new[] { "0", "10" }, count = 1 });
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","title":"How likely are you to recommend us?","options":["0","10"],"count":1}`)
	req, _ := http.NewRequest("POST", "https://gate.whapi.cloud/messages/poll", 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))
}
Livrare

Află când sondajul a ajuns

Un răspuns de trimitere reușit nu înseamnă că persoana are deja sondajul. Primul status vizibil înainte de un webhook este pending. Schimbările ulterioare ajung doar pe statuses.post și statuses.put. Dacă statusul rămâne pending și nu trece la sent, delivered sau un ack ulterior, mesajul nu a fost livrat. Verifică payload-ul și permisiunea contului de a trimite acel tip.

  • Un răspuns de la sendMessagePoll nu dovedește că persoana are sondajul.

  • Un pending care nu avansează înseamnă că sondajul nu a fost livrat.

  • Urmărește statuses.post și statuses.put pentru ack-urile ulterioare.

  • Un vot ajunge pe messages.post ca acțiune de tip vote.

  • Activează messages.patch ca să vezi total, count pe fiecare opțiune și voters.

  • read poate lipsi până când persoana răspunde sau salvează numărul.

Ce să citești despre livrare și webhook-uri

Contactează suportul dacă ceva nu a mers
Când ceva se strică

Tratează eșecurile la fiecare pas

Dacă trimiterea sondajului este respinsă sau nu este livrată, persoana nu primește sondajul. Reîncearcă trimiterea sau alertează echipa și nu număra sondajul ca trimis.

Interacțiunea s-a încheiat, dar sondajul a eșuat?

Trimiterea poate fi respinsă sau nelivrată după ce interacțiunea s-a încheiat deja. Reîncearcă sendMessagePoll sau alertează echipa și nu număra sondajul ca trimis. Clienții spun des că suportul nostru răspunde. Nu ezita să ceri ajutor.

Contactează suportul dacă ceva nu a mers

Depanează pe pas de API

Status Ce înseamnă Ce să faci
400 Wrong request parameters
401 Need channel authorization for send message
402 Trial version limit exceeded
403 It is forbidden to send to this group/recipient
429 Too many requests
500 Internal Error
FAQ

Întrebări de la integratori

Nu. Acest flux începe după ce o interacțiune s-a încheiat. Nu sunt întrebări de calificare într-un chat din reclamă.
Nu. Mesajul este un sondaj NPS după interacțiune. Nu este un reminder de vizită cu acele trei răspunsuri.
Dacă trimiterea este respinsă sau nu este livrată, reîncearcă sau alertează echipa și nu număra sondajul ca trimis.
Nu. Pui titlul și opțiunile pe trimitere. Trimiterea nu așteaptă un mesaj scris dinainte și nu adaugă un cost pentru acel mesaj.
Un vot ajunge pe messages.post ca acțiune de tip vote. Activează messages.patch ca să primești total, count pe fiecare opțiune și voters. Poți citi sondajul și cu getMessage dacă ai păstrat id-ul. Acea citire nu este un pas al trimiterii pe această pagină.
Funcționalități WhatsApp suportate

Tot ce ai nevoie pentru a construi automatizări pe WhatsApp

Whapi.Cloud îți oferă acces la un set complet de funcționalități WhatsApp — mesaje, media, grupuri, canale, webhook-uri și altele. Construiește boți, automatizări și integrări fără limitări de funcții.

Ales de dezvoltatori

De încredere pentru peste 3.300 de dezvoltatori și echipe SaaS

Dezvoltatori din întreaga lume se bazează pe Whapi.Cloud pentru a crea automatizări, boți, integrări CRM, instrumente de mesagerie în masă și fluxuri avansate WhatsApp. Infrastructura noastră procesează milioane de cereri API cu o stabilitate ridicată — iar numărul crește în fiecare lună.

Pictogramă funcționalitate

5,5K+

canale API active

Pictogramă funcționalitate

21M+

cereri API pe lună

„Totul este simplu, intuitiv și ușor de folosit. Documentația este clară, iar toate informațiile necesare sunt la îndemână. Foarte bine făcut.”

Roberto K. / Web Developer

„Am conectat WhatsApp la fluxurile noastre în n8n în doar câteva minute. Fără cod, fără complicații — totul a funcționat din prima.”

Martin P. / Developer

„Whapi.Cloud a devenit o parte esențială a comunicării cu clienții. Am automatizat actualizări de produse, notificări de comenzi și mesaje de suport — fără șabloane sau aprobări Meta.”

Oscar T. / CTO

Bulă decorativă